2010-08-25 30 views
0

我有一個C++項目,我想查看預處理器輸出以查看某些#defines和宏的外觀喜歡。我嘗試使用/p開關打開編譯器的文件選項預處理過程(它關閉完整編譯並僅運行預處理器),但是我的項目現在拒絕編譯並顯示一長串錯誤,其開頭爲:使用/ p參數編譯項目(VS 2008)(預處理爲文件)無法編譯

「無法打開包含文件:'stdafx.h':沒有這樣的文件或目錄」。

當然,該項目編譯沒有/p參數罰款。有什麼建議麼?

+0

暫時刪除使用預編譯頭(/ Yu在命令行上)? – pascal 2010-08-25 20:45:18

回答

0

如果您自己運行cl.exe,那麼您需要提供與IDE構建時所用的所有參數相同的參數,否則它將無法找到所有包含路徑和預處理器宏。但是,還有另一種方法可以做到這一點。在項目文件中,選擇所需的.cpp文件,然後選擇「屬性」>「C++」>「預處理器」>「生成預處理器文件」。然後編譯.cpp文件。

這會在輸出目錄中生成預處理文件(我認爲是file.i)。很遺憾,沒有簡單的方法來選擇文件並點擊「預處理」,但這可能很容易用VisualStudio宏來完成。之後不要忘記設置選項。

0

當您使用/p編譯時,所有其他選項(如/I)是否仍然相同?這聽起來好像沒有選擇你的頭文件。另外,因爲它試圖預處理所有的包含,它不再生成預編譯頭文件 - 你可以直接包含所有需要的頭文件,而不是直接包含所有頭文件。

+0

這是一個很好的想法。就我而言,由於該項目相當大(100個源文件),因此看起來只需要很多努力來查看預處理輸出。上述方法對我的目的工作正常。謝謝! – Josh 2010-08-25 21:23:55