2016-08-02 9 views
3

ich diesen Fehler zu arbeiten, wenn mein Codewie png bekommen ++ in 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 

ich bei http://savannah.nongnu.org/bugs/?47990 lesen Kompilieren es ist, weil

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. 

Wie kann ich dieses Problem beheben?

Antwort

0

Ich hatte das gleiche Problem in CodeBlocks.

Sie können die Linie 108 ändern, war:

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

zu

return std::string(""); 

Während dies den Fehler beheben sollten und aktivieren Sie png ++ verwenden in Ihrem Projekt, ich bin zu raten, die Fehlerberichterstattung wird nicht mehr richtig funktionieren.

0

Vielleicht wirst du das nie lesen, aber hey, du weißt es nie. Wie auch immer, ich hatte gerade das gleiche Problem, mein fix: hinzufügen

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

Dann

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

zu

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