2017-05-30 82 views
0

我試圖用CodeBlocks構建靜態鏈接的OpenSSL + LibCurl控制檯應用程序。但是,我無法讓它工作。我不斷收到這些錯誤:使用Autotools和MinGW靜態鏈接OpenSSL和cURL

||=== Build: Debug in Filer (compiler: GNU GCC Compiler) ===| 
C:\MinGW\msys\1.0\local\lib\libcurl.a(libcurl_la-openssl.o)|| undefined reference to `SSL_get0_alpn_selected'| 
C:\MinGW\msys\1.0\local\lib\libcurl.a(libcurl_la-openssl.o)|| undefined reference to `SSL_CTX_set_alpn_protos'| 
C:\MinGW\msys\1.0\local\lib\libcurl.a(libcurl_la-openssl.o)|| undefined reference to `SSL_CTX_set_next_proto_select_cb'| 
C:\MinGW\msys\1.0\local\lib\libcurl.a(libcurl_la-openssl.o)|| undefined reference to `SSL_CTX_set_srp_username'| 
C:\MinGW\msys\1.0\local\lib\libcurl.a(libcurl_la-openssl.o)|| undefined reference to `SSL_CTX_set_srp_password'| 
C:\MinGW\msys\1.0\local\lib\libcurl.a(libcurl_la-openssl.o)|| undefined reference to `SSL_COMP_free_compression_methods'| 
||=== Build failed: 6 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| 

這是生成日誌:

mingw32-g++.exe -o bin\Debug\Filer.exe "obj\Debug\MinGW Sources\BASE64\base64.o 
" "obj\Debug\MinGW Sources\SQLite\sqlite3.o" obj\Debug\Users\thoma\Desktop\Filer 
\main.o -static -lcurl -lrtmp -lidn -lssl -lssh2 -lcrypto -lz -lwldap32 -lws2_ 
32 -lwinmm -lgdi32 C:\MinGW\msys\1.0\local\lib\libcrypto.dll.a C:\MinGW\msys\1.0 
\local\lib\libcurl.a C:\MinGW\msys\1.0\local\lib\libcurl.dll.a C:\MinGW\msys\1.0 
\local\lib\libssl.a C:\MinGW\msys\1.0\local\lib\libssl.dll.a C:\MinGW\msys\1.0\l 
ocal\lib\libwxjpeg-3.0.a C:\MinGW\msys\1.0\local\lib\libwxpng-3.0.a C:\MinGW\msy 
s\1.0\local\lib\libwxscintilla-3.0.a C:\MinGW\msys\1.0\local\lib\libwxtiff-3.0.a 
C:\MinGW\msys\1.0\local\lib\libz.a C:\MinGW\msys\1.0\local\lib\libz.dll.a 

我用它概括here的設置。

我設置的一些照片:

enter image description hereenter image description hereenter image description hereenter image description hereenter image description here

+0

你的命令行是否有'-L <捲曲庫文件夾路徑>'? – user4581301

+0

@ user4581301,不是我能找到的嗎?我已經添加了構建日誌和設置的一些圖片 –

+0

命令行看起來有點奇怪。 '-lcurl'表示curl中的鏈接,但沒有'-L'來告訴鏈接器在哪裏找到它。查看「搜索目錄」選項卡上是否有任何內容允許您指定鏈接程序搜索目錄。另一方面,您已經指定了看起來像共享庫版本的鏈接信息的確切位置。既然你想靜態鏈接,我認爲你可以沒有這種生活。 – user4581301

回答

0

你有你的OpenSSL版本,並通過使用libcurl的OpenSSL的版本不匹配。

+0

好的,這似乎相關。我該如何解決這個問題,以及如何驗證兩個版本? –

+0

你想我重建我的設置? –

+1

解決它實際上非常棘手,你可能必須重新編譯'libcurl'本身。 – arboreal84