我有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
答案 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()