为什么已安装CMAKE的目标无法链接到提供的库?

时间:2018-10-23 08:40:15

标签: cmake install shared-libraries linkage

我正在建立一个依赖于某些提供的库的目标。我的src目录层次结构如下所示:

enter image description here

我使用以下CMakeLists.txt来构建目标并将其安装在build/install目录中:

cmake_minimum_required(VERSION 2.8.3)

project(example)

include_directories(include)
link_directories(lib)

add_executable(${PROJECT_NAME}
src/example.cpp)

target_link_libraries(${PROJECT_NAME}
curlpp)

set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/install)

install(TARGETS ${PROJECT_NAME}
  LIBRARY DESTINATION lib
  ARCHIVE DESTINATION lib
  RUNTIME DESTINATION bin
)

install(FILES lib/libcurlpp.a  lib/libcurlpp.so  lib/libcurlpp.so.1 lib/libcurlpp.so.1.0.0 DESTINATION deps) 

当我做一个简单的build时,一切都很好,并且目标已正确链接到提供的库。但是当我执行make install时,生成了目标,但无法链接到库: enter image description here

我了解已安装目标的链接失败:install/deps目录不在我的环境的LD_LIBRARY_PATH中。但是cmake为正确建立直接建立的目标链接做了什么?我可以做些类似的事情来使已安装的目标正常工作吗?

这里是a minimal replication of the problem

0 个答案:

没有答案