2012-01-05 84 views
2

我在Windows XP系統上使用Visual Studio 2005(32位)。我有一個C++項目,我從命令行(在一個批處理文件中)使用devenv.exe來啓動構建。下面是它如何被推出的一個例子:命令行中的Visual Studio會生成警告; IDE不是

{path_to_devenv.exe} my_solution.sln /rebuild "Debug|Win32" /out my_logfile.txt 

在這個項目的代碼,我們用了幾註記語句來禁用我們不希望一些無關的警告看到:

#pragma warning (disable : 4521 4522) 
// Some code here 
#pragma warning (default : 4521 4522) 

當從IDE配置debug配置項目時,這些警告不會顯示在構建輸出中。當從命令行構建相同的項目時,我們的日誌文件(我們用/out命令行參數指定)顯示警告do。在發佈版本中構建時,在任何情況下都不會顯示警告。

通過devenv.exe驅動VS 2005有什麼不同,導致在調試情況下忽略編譯指示?爲什麼這些警告會出現在一個世界而不是另一個?

回答

1

坦率地說,我能看到這種情況發生的唯一原因就是沒有看到編譯指示。

檢查

  • 構建配置(是否在IDE中建立Debug|Win32嗎?)
  • ,特別是包括路徑(它們是相同的;也許看環境是否含有其他設置)
  • 你正在做一個從IDE內完全重建?我不排除你通常在IDE中看不到警告,因爲你通常做一個增量構建和相關的源不需要建立。檢查做了充分的在IDE

如果你是絕望的線索重建當你是否得到相同的錯誤,你總是可以繼續使用這兩個變種,並比較他們預處理的結果。 「預處理源」選項隱藏在「預處理器」C++構建設置下的某處。

祝你好運

+0

感謝您的提示。(1)我很積極我在IDE中創建了與命令行相同的配置。 (2)包含路徑在兩種配置中都是相同的(事實上,我不同意這兩種配置以查看更改內容)。 (3)在這兩種情況下,我正在全面重建。 「保留預處理源」選項是一種幫助;兩種變體都是一樣的。現在,當我從命令行旋轉構建時,我看不到警告。也許日誌文件被追加到?也許它是間歇性的?無論哪種方式,這些提示都很有幫助。謝謝! – 2012-01-05 23:18:44

+0

我只是回答了我自己的問題。我們的日誌文件正在追加到。我看到的警告來自舊版本。我真是個白癡! – 2012-01-05 23:24:04

+0

Hola!無論如何感謝您的反饋。 – sehe 2012-01-06 02:10:27

相關問題