MOH*_*MED 8 c makefile linux-kernel
如何为内核模块makefile添加包含路径?我想在test_module.c中包含"test_kernel.h"."test_kernel.h"驻留在其他目录"inc"中我在Makefile中的以下解决方案中尝试但是它不起作用:
obj-m += test_module.o
test_module:
$(MAKE) -C "$(LINUX_DIR)" -Iinc $(MAKE_OPTS) modules
Run Code Online (Sandbox Code Playgroud)
ano*_*ard 15
你应该利用EXTRA_CFLAGS你的Makefile.尝试这些方面的东西:
obj-m += test_module.o
EXTRA_CFLAGS=-I$(PWD)/inc
test_module:
$(MAKE) -C "$(LINUX_DIR)" $(MAKE_OPTS) modules
Run Code Online (Sandbox Code Playgroud)
请参见此处的第3.7 Compilation Flags节.
希望这可以帮助!
-I是 GCC 标志,而不是 Make 标志。1 您需要将一个变量传递给您的“子”Make 流程;也许是这样的:
$(MAKE) -C "$(LINUX_DIR)" CPPFLAGS="-Iinc" $(MAKE_OPTS) modules
Run Code Online (Sandbox Code Playgroud)
其中CPPFLAGS是隐式规则中使用的标准 Make 变量。请随意使用您自己的变量,并确保它在子 make 中正确使用。
Make 手册提供了有关 Make 实例之间通信变量的更多详细信息:http://www.gnu.org/software/make/manual/make.html#Variables_002fRecursion。