2016-08-02 73 views
3

工作,我得到這個錯誤我的代碼編譯時如何獲得PNG ++在windows的Visual Studio

Error 3 error C3861: 'strerror_r': identifier not found c:\program files (x86)\microsoft visual studio 12.0\vc\include\png++\error.hpp 108 1 Depth-Estimation 

我在http://savannah.nongnu.org/bugs/?47990讀它是因爲

In Visual Studio 2015 (14.0.25123.00 Update 2) the definition _STDC_LIB_EXT1_ is not set, meaning that in error.hpp it tries to fall back to strerror_r which isn't available anymore. 

Because _STDC_LIB_EXT1_ is not set, _STDC_WANT_LIB_EXT1_ is not defined, string.h is not included, and HAVE_STDERROR_S is not defined. 

我該如何解決這個問題?

回答

0

我在CodeBlocks中遇到了同樣的問題。

可以更改,這是行108:

return std::string(strerror_r(errnum, buf, ERRBUF_SIZE)); 

return std::string(""); 

雖然這應該可以解決的錯誤,使你在你的項目中使用PNG ++,我猜錯誤報告將不再正常工作。

0

也許你永遠不會讀這個,但嘿,你永遠不知道。 反正,我只是有同樣的問題,我的解決辦法: 添加

#define strerror_r(errno,buf,len) strerror_s(buf,len,errno) 

然後改變

return std::string(strerror_r(errnum, buf, ERRBUF_SIZE)); 

strerror_r(errnum, buf, ERRBUF_SIZE); 
return std::string(buf); 
相關問題