2017-05-30 4 views
0

Ich versuche eine statisch verknüpfte OpenSSL + LibCurl Konsolenanwendung mit CodeBlocks zu erstellen. Aber ich kann es nicht zur Arbeit bringen. Ich erhalte diesen Fehler:Statisches Verknüpfen von OpenSSL und cURL mit Autotools und MinGW

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

Dies ist das Buildprotokoll:

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 

ich das Set-up verwendet, die here skizziert.

Einige Bilder von meinem Setup:

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

+0

Hat Ihre Befehlszeile einen Ordner '-L >? – user4581301

+0

@ user4581301, nein, das kann ich nicht finden? Ich habe das Build-Protokoll hinzugefügt und einige Bilder der Einrichtung –

+0

Command Line sieht ein bisschen seltsam aus. '-lcurl' sagt link in curl, aber ohne ein' -L', um dem Linker zu sagen, wo er das Spiel finden soll. Prüfen Sie, ob auf der Registerkarte "Suchverzeichnisse" etwas vorhanden ist, mit dem Sie die Linker-Suchverzeichnisse angeben können. Auf der anderen Seite haben Sie den genauen Speicherort der Verknüpfungsinformationen für die Version der gemeinsam genutzten Bibliothek angegeben. Da du statische Verknüpfungen willst, denke ich, dass du ohne das leben kannst. – user4581301

Antwort

0

Sie haben eine Diskrepanz zwischen Ihrer OpenSSL-Version und der OpenSSL-Version von libcurl verwendet.

+0

In Ordnung, das scheint relevant. Wie kann ich dieses Problem beheben und wie kann ich beide verwendeten Versionen validieren? –

+0

Sie möchten, dass ich mein Setup neu anlege? –

+1

Lösung es ist wirklich sehr schwierig, und Sie müssen wahrscheinlich 'libcurl' selbst rekompilieren. – arboreal84

Verwandte Themen