2013-07-03 203 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