Compiler construction 编译linux内核模块时,makefile中的KBUILD\u CFLAGS不起作用

Compiler construction 编译linux内核模块时,makefile中的KBUILD\u CFLAGS不起作用,compiler-construction,makefile,compiler-flags,Compiler Construction,Makefile,Compiler Flags,我运行make文件,并在Makefile中添加以下行 KBUILD_CFLAGS += -DXFLAGS 在我的.c文件中,我有: #ifdef XFLAGS printk(...); #endif make编译成功,但是,我无法在日志文件中看到消息,如/var/log/syslog。 我想知道是什么导致了这个问题?(无法设置标志) 注意,printk内部没有问题。正如我对#ifdef和printk进行了注释一样,printk工作得很好。仅仅向makefile添加一个新的变量赋值没有任何作用

我运行
make
文件,并在Makefile中添加以下行

KBUILD_CFLAGS += -DXFLAGS
在我的.c文件中,我有:

#ifdef XFLAGS
printk(...);
#endif
make编译成功,但是,我无法在日志文件中看到消息,如
/var/log/syslog
。 我想知道是什么导致了这个问题?(无法设置标志)
注意,printk内部没有问题。正如我对
#ifdef
和printk进行了注释一样,printk工作得很好。

仅仅向makefile添加一个新的变量赋值没有任何作用。您必须在编译器调用中使用该变量。您没有在makefile中显示编译规则,也没有显示用于打印的compile命令,因此我们不能再多说了。

谢谢。我是新手。你能解释一下你的意思吗?我没有在其他任何地方使用过
KBUILD\u CFLAGS
。我非常感谢您的帮助。这确实是一个关于Linux内核构建环境的问题:它与make或编译器完全无关。在Unix&Linux站点上提问,或者至少修改问题的标签,可能会更幸运。然而,这似乎取决于您是否在构建模块,等等。我不太熟悉修改Linux内核以添加这样的标志的细节,因此我无法提供更多帮助。