【问题标题】:Compiling linux kernel module, KBUILD_CFLAGS in makefile does not work编译linux内核模块,makefile中的KBUILD_CFLAGS不起作用
【发布时间】:2013-07-03 07:27:35
【问题描述】:

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

KBUILD_CFLAGS += -DXFLAGS

在我的 .c 文件中,我有:

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

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

【问题讨论】:

    标签: compiler-construction makefile compiler-flags


    【解决方案1】:

    只是向 makefile 添加一个新的变量赋值不会做任何事情。您必须在编译器调用中使用该变量。您没有在 makefile 中显示编译规则,也没有在 make 打印出来的编译命令中显示,所以我们无话可说。

    【讨论】:

    • 谢谢。我是新手。你能解释一下你的意思吗?我没有在其他任何地方使用过KBUILD_CFLAGS。非常感谢您的帮助。
    • 这确实是一个关于Linux内核构建环境的问题:它与make或编译器根本无关。在 Unix 和 Linux 网站上提问,或者至少修改问题上的标签,您可能会有更多的运气。但是,从kernel.org/doc/Documentation/kbuild/makefiles.txt 看来,这似乎取决于您是否正在构建模块,等等。我对修改 Linux 内核以添加这样的标志的细节不是很熟悉,所以我能提供的帮助不多给。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 2017-04-25
    相关资源
    最近更新 更多