2012-03-15 60 views
3

我有一個頭文件,凡在我用這樣的:如何單獨獲取預處理的頭文件輸出?

#if defined(LINUX) || defined(ANDROID) 
pthread_t gpthread; 
#endif 

現在,我想通過-DLINUX在編譯後只得到頭文件的內容。有什麼辦法可以得到它嗎?如果我使用:

#arm-linux-androideabi-g++ -E main.c > temp 

然後輸出有點混淆我。

+3

小心解釋「混淆」是什麼意思? – 2012-03-15 06:35:26

+1

是什麼阻止你創建一個只包含這個頭文件並獲得相同預處理輸出的.c文件?我錯過了什麼嗎?它應該給你所需的輸出。 :) – Jay 2012-03-15 06:55:15

回答

3

你可以只要求編譯器做預處理僅在頭文件:

arm-linux-androideabi-g++ -DLINUX -E foo.h > temp 
+0

從來沒有嘗試單獨預處理頭文件:)。太好了! – 2012-03-15 06:53:35

2

你可能有興趣在預處理輸出(以增強可讀性)保持註釋與

arm-linux-androideabi-g++ -DLINUX -C -E foo.h > foo.i 

然後查看(使用編輯器或尋呼機)到foo.i

生成的foo.i包含以01開頭的行傳達位置信息。

0

爲什麼不直接撥打cpp -D<something to be defined> <header file name>

相關問題