我正在使用一個程序,該程序充滿了Visual Studio中編程的編譯器指令。如何在整個編譯過程中遵循預處理器指令
我做了一些改變,現在我卡住了一個無法解析的外部編譯器/鏈接器錯誤。
我相信這是由編譯器指令引起的,它似乎沒有檢測到該特定函數的實現,爲了研究這一點,我希望在整個編譯過程中遵循#ifdef
編譯器指令。
我已經嘗試過使用/P
配置,但在Output
窗口中看不到任何編譯器指令。
有誰知道如何做到這一點?
我正在使用一個程序,該程序充滿了Visual Studio中編程的編譯器指令。如何在整個編譯過程中遵循預處理器指令
我做了一些改變,現在我卡住了一個無法解析的外部編譯器/鏈接器錯誤。
我相信這是由編譯器指令引起的,它似乎沒有檢測到該特定函數的實現,爲了研究這一點,我希望在整個編譯過程中遵循#ifdef
編譯器指令。
我已經嘗試過使用/P
配置,但在Output
窗口中看不到任何編譯器指令。
有誰知道如何做到這一點?
我認爲你在/P
選項的正確軌道上,但doc指出輸出將轉到擴展名爲.i
的文件(所以可能不會到你的輸出窗口)。
此外,您可以通過生成映射文件來找到任何鏈接器錯誤的幫助;見/MAP (Generate Mapfile)。
謝謝@Phil,但它似乎不工作:即使設置了「/ map」設置,我也沒有* .i文件,也沒有其他文件。 – Dominique
輸出窗口是否顯示正在執行的編譯器命令?可能有一些線索爲什麼沒有生成文件。 –
我剛剛嘗試啓用簡單控制檯應用程序上的'/ P'選項並構建。 '.i'文件位於編譯輸出目錄(例如,在我的例子中爲'Debug')。鏈接失敗是一種副作用(因此,在解決編譯器/預處理器問題之後,您需要排除故障時的問題)。 –
Visual Studio應該將由宏禁用的代碼塊變灰,否? – DeiDei
事實上,這隻對靜態編譯器指令有用,但在我的情況下,它們有時以'#define'開頭,然後執行'#undefine',然後再返回,..., (因此很可能是未解決的外部問題),我希望預處理器的編譯輸出能夠告訴我發生了什麼。 – Dominique