1
我有一個複雜的Makefile結構的大源目錄(包括地段等)GCC -E -dM給我的預處理器定義,但我希望它編譯
我想抓住預處理定義了GCC將在您運行時提供
gcc -E -dM。但是,我也想要構建源代碼。當我檢查make/build日誌時,我希望看到make運行的所有命令,以及來自源文件中的所有文件的#define,這些文件被傳遞給編譯器和/或重寫。
我不知道如何去做這件事。
對於如
如果有隻用這一條線foo.c文件裏
#define PI 3.14
運行的gcc -E -dM的foo.c將打印出所有的preprocessory定義到stdout,以及foo.c中的定義。
但它不編譯。我如何將命令組合起來以使這兩件事情都發生?
謝謝保羅!我會給這個鏡頭。 .dump文件在哪裏創建?我會從我跑過的地方(頂層)發現它嗎? – Rohan 2011-06-17 16:31:36
@Rohan:應該和.c文件在同一個目錄 – 2011-06-17 16:33:02
謝謝保羅。這對我用簡單的foo.c文件創建的一個小例子非常有效。我試圖解決的問題稍微複雜一些。我有一個帶有.c文件的文件夾,但編譯成.o的文件正在不同的make文件中處理。我只是嘗試了你給我的解決方案的第一部分(用-dM開關等),但規則似乎沒有觸發,因爲現在在這種情況下,我不關心編譯本身,因爲它的存在已搞定。 我應該如何修改上述規則,使其在所有.c文件的感興趣文件夾中運行,併爲我提供這些符號? – Rohan 2011-06-22 20:51:34