我有一個頭文件,凡在我用這樣的:如何單獨獲取預處理的頭文件輸出?
#if defined(LINUX) || defined(ANDROID)
pthread_t gpthread;
#endif
現在,我想通過-DLINUX在編譯後只得到頭文件的內容。有什麼辦法可以得到它嗎?如果我使用:
#arm-linux-androideabi-g++ -E main.c > temp
然後輸出有點混淆我。
我有一個頭文件,凡在我用這樣的:如何單獨獲取預處理的頭文件輸出?
#if defined(LINUX) || defined(ANDROID)
pthread_t gpthread;
#endif
現在,我想通過-DLINUX在編譯後只得到頭文件的內容。有什麼辦法可以得到它嗎?如果我使用:
#arm-linux-androideabi-g++ -E main.c > temp
然後輸出有點混淆我。
你可以只要求編譯器做預處理僅在頭文件:
arm-linux-androideabi-g++ -DLINUX -E foo.h > temp
從來沒有嘗試單獨預處理頭文件:)。太好了! – 2012-03-15 06:53:35
你可能有興趣在預處理輸出(以增強可讀性)保持註釋與
arm-linux-androideabi-g++ -DLINUX -C -E foo.h > foo.i
然後查看(使用編輯器或尋呼機)到foo.i
生成的foo.i
包含以01開頭的行傳達位置信息。
爲什麼不直接撥打cpp -D<something to be defined> <header file name>
?
小心解釋「混淆」是什麼意思? – 2012-03-15 06:35:26
是什麼阻止你創建一個只包含這個頭文件並獲得相同預處理輸出的.c文件?我錯過了什麼嗎?它應該給你所需的輸出。 :) – Jay 2012-03-15 06:55:15