1
在構建OpenSSL-1.1.0d時,出現錯誤。「undefined reference to strerror_r」with OpenSSL-1.1.0e和MinGW
./libcrypto.a(o_str.o):o_str.c:(.text+0x5cb): undefined reference to `strerror_r'
collect2.exe: error: ld returned 1 exit status
make[2]: *** [Makefile.shared:187: link_app.] Error 1
make[2]: Leaving directory '/c/MinGW/openssl-1.1.0d'
make[1]: *** [Makefile:5966: apps/openssl.exe] Error 2
make[1]: Leaving directory '/c/MinGW/openssl-1.1.0d'
make: *** [Makefile:128: all] Error 2
我也跟着下面的步驟來構建它
tar -xf vv.tar.gz
perl Configure mingw no-shared
make
說明來自Compiling OpenSSL on Windows (mingw32)。
爲什麼鏈接失敗,我該如何解決?
您標記爲'C++'。您必須使用C編譯器構建庫;不是C++編譯器。 MinGW在前段時間被放棄。你可以用Cygwin代替嗎? OpenSSL項目提供了在[INSTALL](https://github.com/openssl/openssl/blob/master/INSTALL)和[NOTES.WIN](https://github.com/openssl/openssl)中使用MinGW進行構建的說明/blob/master/NOTES.WIN)。你可以用它們來代替嗎?您可能需要定義'_XOPEN_SOURCE = 600'。另請參閱OpenSSL wiki上的[編譯和安裝](https://wiki.openssl.org/index.php/Compilation_and_Installation)。 – jww
對不起C++標記,感謝您的回覆..我不知道你的所有建議,但我仍然得到相同的錯誤.. :('./libcrypto.a(o_str.o):o_str.c:(.text+0x5cb) :未定義的參考'strerror_r'' –