【问题标题】:how to get png++ to work in windows visual studio如何让 png++ 在 Windows Visual Studio 中工作
【发布时间】:2016-12-07 21:07:44
【问题描述】:

编译代码时出现此错误

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.

我该如何解决这个问题?

【问题讨论】:

    标签: libpng


    【解决方案1】:

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

    您可以将第 108 行更改为:

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

    return std::string("");
    

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

    【讨论】:

      【解决方案2】:

      也许你永远不会读到这篇文章,但是嘿,你永远不会知道。 无论如何,我只是遇到了同样的问题,我的解决方法: 添加

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

      【讨论】:

        猜你喜欢
        • 2013-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多