如何在Windows Visual Studio中使用png++?

3
当我编译代码时,出现了这个错误。
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.

我怎样解决这个问题?
2个回答

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

0

我在CodeBlocks中遇到了同样的问题。

你可以更改第108行,即:

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

return std::string("");

虽然这样做可以解决错误并使您能够在项目中使用png ++,但我猜测错误报告将不再正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接