2011-11-04 57 views
3

我在Visual Studio 2010的工作,我必須用C寫的VC++:在釋放模式

如果我在「調試」模式下運行的代碼錯誤fprintf中,代碼將沒有任何錯誤或警告運行。

但是,如果我在「釋放」模式下運行相同,則會出現錯誤和警告。

錯誤列表:

 warning C4013:'fprintf' undefined; assuming extern returning int 
     error C2065: 'stdout': undeclared identifier 

的原因是什麼?請幫助

+0

你在做源代碼中的#include 嗎? –

+0

可能重複[什麼是'未聲明的標識符'錯誤,我該如何解決它?](http://stackoverflow.com/questions/22197030/what-is-an-undeclared-identifier-error-and-how-做-I-FIX-IT) –

回答

2
warning C4013:'fprintf' undefined; assuming extern returning int 

看起來你並沒有包括stdio.h

0

看起來像版本和調試之間的配置差異。 檢查「整體程序優化」的值,它們可能在兩種構建配置中有所不同。


我曾在反向同樣的問題:在釋放模式一切都很好,但在調試模式,如「轉」(FFTW庫)的一些功能被報告爲「不確定的;假設的extern返回int」。

失敗的構建配置(發佈在我的案例中)在項目屬性Configuration Properties > General下的選項「整體程序優化」設置爲No Whole Program Optimization

成功的構建配置將此設置爲Use Link Time Code Generation。當我在失敗的目標中設置該選項時,一切正常。