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);