Libpng 如何获取png++;在windows visual studio中工作的步骤
我在编译代码时遇到此错误Libpng 如何获取png++;在windows visual studio中工作的步骤,libpng,Libpng,我在编译代码时遇到此错误 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 我读它是因为 In Visual Studio 2015 (14.0.25123.00 Update 2) the definition _S
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
我读它是因为
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.
如何修复此问题?我在代码块中遇到了相同的问题 您可以更改第108行,该行是:
return std::string(strerror_r(errnum, buf, ERRBUF_SIZE));
return std::string(strerror_r(errnum, buf, ERRBUF_SIZE));
到
虽然这可以解决错误并使您能够在项目中使用png+,但我猜错误报告将不再正常工作。也许您永远不会读到这篇文章,但嘿,您永远不会知道。 总之,我也遇到了同样的问题,我的解决方案: 加 然后改变 到
#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);