2013-07-03 834 views
0

我运行make文件,在Makefile中添加下面的行。编译linux内核模块,makefile中的KBUILD_CFLAGS不起作用

KBUILD_CFLAGS += -DXFLAGS 

在我的.c文件我有:

#ifdef XFLAGS 
printk(...); 
#endif 

本作编译成功,但是,我无法看到该消息中的日志文件,如/var/log/syslog。 我想知道什么会导致这个问题? (不能设置标志) 请注意,printk内部没有问题。正如我评论#ifdef和printk工作正常。

回答

1

只要向makefile添加新的变量赋值就不会做任何事情。你必须在编译器调用中使用那个变量。您不会在makefile或编译命令中显示编译规则,因此我们可以说没有更多。

+0

谢谢。我是新手。你能解释一下你的意思吗?我没有在其他地方使用过'KBUILD_CFLAGS'。我非常感谢你的帮助。 – smo

+0

这实际上是一个关于Linux内核构建环境的问题:它根本与make或编译器无关。你可能会在Unix和Linux站点上碰到更多的运气,或者至少修改你的问题上的标签。但是,从https://www.kernel.org/doc/Documentation/kbuild/makefiles.txt看起来取决于你是否正在构建一个模块而不是等等,我不太了解修改的细节Linux内核添加像这样的标志,所以没有更多的帮助,我可以给。 – MadScientist