0

すべてのソース ファイルを 1 か所にまとめたいので、私の目標は lttng-modules ディレクトリの外に lttng-probe-xxx モジュールをビルドすることです。簡単な Makefile を作成しましたが、コンパイル中にモジュールをロードしようとすると、「lttng_probe_register」と「lttng_probe_unregister」が未定義であるというメッセージが表示されました (コンパイル中も同じです)。

メイクファイル:

INCLUDES = -I. -I$(LTTNGDIR)/probes -I$(ROOTPWD)/include -I$(KERNELDIR)/include
KBUILD_CFLAGS += -g $(INCLUDES)

all: kernel_modules
obj-m   += lttng-probe-hello.o
PWD     := $(shell pwd)

kernel_modules:
    $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) modules`

KERNELDIR はエクスポートされた変数で、Linux カーネルの src です。

LTTNGDIR はエクスポートされた変数で、lttng-modules の src です。

これら 2 つを lttng-probes.c から私の lttng-probe-hello.ko にリンクすることは可能ですか?

EXPORT_SYMBOL_GPL(lttng_probe_register);
EXPORT_SYMBOL_GPL(lttng_probe_unregister);
4

1 に答える 1