2016-03-24 7 views
1

Ich habe eine CLion project. Hier ist meine CMakeLists.txt:Kann OpenSSL-Bibliotheken nicht mit CLion C++ - Programm verbinden

cmake_minimum_required(VERSION 3.3) 
project(Project) 

> set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 
> include_directories(/usr/include/openssl/) 
> link_libraries(openssl) 
> set(SOURCE_FILES main.cpp Includes.h b.cpp b.h a.cpp 
> a.h) add_executable(Project ${SOURCE_FILES}) 

Und hier ist Fehler, die ich bekomme:

[ 25%] Linking CXX executable Project /usr/bin/ld: cannot find -lopenssl 
collect2: error: ld returned 1 exit status 
+0

Stellen Sie sicher, dass die Bibliothek auf Ihrem LD_LIBRARY_PATH haben – Learner

+0

Und wie LD_LIBRARY_PATH zu überprüfen? Ist es eine Systemvariable? –

+0

ich @ lnx: ~ # echo $ LD_LIBRARY_PATH - Es ist leer –

Antwort

3

Vielleicht sollten Sie versuchen link_libraries (ssl) anstelle von link_libraries (openssl), wenn Sie sicher sind, dass openssl auf Ihrem lokalen Rechner installiert ist. Siehe https://wiki.openssl.org/index.php/Libcrypto_API, es besagt, dass "OpenSSL zwei primäre Bibliotheken bereitstellt: libssl und libcrypto.".

beheben Ihr Problem zu Ihrer CMakeList.txt fügen Sie einfach:

link_libraries(crypto) 
+0

/usr/bin/ld: CMakeFiles/Projekt/Connect.cpp.o: undefinierter Verweis auf Symbol 'ERR_load_crypto_strings @@ OPENSSL_1.0.0' //usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0 : Fehler beim Hinzufügen von Symbolen: DSO fehlt in der Befehlszeile Collect2: Fehler: ld zurückgegeben 1 Exit-Status –

+0

Dann versuchen Sie, libcrypto auch zu verknüpfen. – xiangziwade

+0

kann -llibcrypto nicht finden –

0

Legen Sie die folgenden LDFLAGS in Ihrem Makefile:

export LDFLAGS=-L/usr/lib -lssl -lcrypto 
+0

Ich habe nicht openssl in/usr/lib/ –

+0

Versuchen Sie dies und lassen Sie es mich wissen. Es sollte funktionieren. – Learner

+0

Nein. Es hat nicht funktioniert. –