【发布时间】:2017-06-07 10:01:02
【问题描述】:
我正在尝试构建一个树外 linux 内核,它应该考虑来自预编译和安装的自定义库的外部头文件。我的 linux 模块将通过 C 接口使用来自共享库的函数。 如何防止内核Makefile中存在此类文件?
obj-m+= hello_module.o
$(MAKE) -C $(KDIR) M=$(OUTDIR) modules
#additional include path
INCLUDES :=\
-I $(PROJECT_ROOT)/deps1
-I $(PROJECT_ROOT)/deps2
-I $(PROJECT_ROOT)/deps3
那么我怎样才能将它包含在上面的 $(MAKE) 行中呢? 提前致谢, Rgds 萨比
【问题讨论】:
-
... headers files comming from already compiled and installed custom libraries.- Linux 内核模块无法链接与用户空间库。也就是说,您可以在编译过程中包含给定的头文件,但生成的模块将包含 unresolved 符号,因此无法将其加载到内核中。 -
那我应该怎么做呢?实际上外部库是动态的,这就是为什么我不能在 OUTDIR 中包含标题。我注意到 VxWorks 可以做到这一点,所以我的问题,
-
您打算如何将动态库链接到内核?
-
示例 deps1 = boost,deps2 = 头文件模板,deps3= 使用 deps2 中的库的 C-iterface
标签: c linux makefile linux-kernel linux-device-driver