我有使用 cmake 编译的 C++ 项目。我正在尝试使用相对路径而不是绝对路径链接库。代码编译良好,但在链接库时出现问题。
CMakeLists.txt:
cmake_minimum_required(VERSION 2.8)
project(GMW)
cmake_policy(SET CMP0015 NEW)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -maes -mpclmul -fPIC")
SET (BOOST_ROOT $ENV{HOME}/boost_1_60_0/)
SET (BOOST_INCLUDEDIR $ENV{HOME}/boost_1_60_0/)
SET (BOOST_LIBRARYDIR $ENV{HOME}/boost_1_60_0/stage/lib)
find_package(Boost COMPONENTS system thread REQUIRED)
INCLUDE_DIRECTORIES($ENV{HOME} ${BOOST_INCLUDEDIR}
../../lib/OTExtensionBristol ../../lib/)
link_directories(/usr/ssl/lib/ ../../install/lib ${BOOST_LIBRARYDIR})
set(SOURCE_FILES main.cpp GMWParty.h Circuit.cpp Circuit.h MPCCommunication.cpp MPCCommunication.h GMWParty.cpp)
add_executable(GMW ${SOURCE_FILES})
add_library(gmw ${SOURCE_FILES})
TARGET_LINK_LIBRARIES(GMW ../../scapi.a gmp
OTExtensionBristol
../../install/lib/libsimpleot.a
boost_system boost_thread pthread crypto dl ssl z)
Run Code Online (Sandbox Code Playgroud)
cmake_policy(SET CMP0015 NEW)解决了链接目录的问题。
对于链接库如何解决?