无法将openssl库链接到CLion C ++程序

时间:2016-03-24 13:13:37

标签: c++ linux c++11 openssl clion

我有CLion project。这是我的CMakeLists.txt:

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

这是我得到的错误:

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

3 个答案:

答案 0 :(得分:4)

如果您确定在本地计算机上安装了openssl,也许应该尝试使用link_libraries(ssl)而不是link_libraries(openssl)。 请参阅https://wiki.openssl.org/index.php/Libcrypto_API,它说“OpenSSL提供了两个主要库:libssl和libcrypto。”。

要解决您的问题,只需添加到 CMakeList.txt

link_libraries(crypto)

答案 1 :(得分:0)

在Makefile中设置以下LDFLAGS:

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

答案 2 :(得分:0)

我遇到了与此类似的问题,其中CLion告诉我该项目找不到我的OpenSSL安装。 #include无法识别OpenSSL。

我发现了这一点,并且对我来说,将OpenSSL链接到我的CLion项目中是很有用的。

将此添加到CMakeLists.txt

# Search OpenSSL
find_package(PkgConfig REQUIRED)
pkg_search_module(OPENSSL REQUIRED openssl)

if( OPENSSL_FOUND )

    include_directories(${OPENSSL_INCLUDE_DIRS})
    message(STATUS "Using OpenSSL ${OPENSSL_VERSION}")
else()
    # Error; with REQUIRED, pkg_search_module() will throw an error by it's own
endif()