首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在kbuild中有条件地包含源代码

在kbuild中有条件地包含源代码
EN

Stack Overflow用户
提问于 2012-07-06 02:22:17
回答 1查看 1.1K关注 0票数 2

假设有一个带有一些func_a函数的源文件a.c。我想根据一些特征定义调用func_a,也希望根据理想的相同特征定义将a.c包含在模块中。

因此,在我始终存在的模块源代码中(比如main.c),我可能会有这样的代码

代码语言:javascript
复制
#ifdef FEATURE_A
func_a();
#endif

在模块的kbuild中,如下所示

obj-$(CONFIG_SAMPLE) += sample.o示例-objs := main.o utils.o

仅当定义了FEATURE_A时,才将a.c包含到示例模块中

???

但这可能没有意义,因为一个是预处理器指令,另一个是编译器/链接器/构建指令。也许预处理器指令使用由kbuild定义的某些标志的另一种方式更有意义?有什么方法可以做到这一点吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2012-07-06 05:08:10

请阅读3.7 Compilation flags

据我所知,在编译时传递的Kconfig选项和预处理宏之间存在松散的关系。这是由内核开发人员定义在编译期间使用哪些预处理器标志。

例如在net/rds/Makefile

代码语言:javascript
复制
ccflags-$(CONFIG_RDS_DEBUG)    :=      -DDEBUG

在这里,如果您的内核配置了Kconfig选项CONFIG_RDS_DEBUG,则将传递预处理器标志DEBUG

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11350255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档