防止 CMake 将库导出目录添加到可执行 RPath

问题描述

我有一个带有共享库和可执行文件的小项目。我将 rpath 指定为 $ORIGIN/.,以便它与可执行文件位于同一文件夹。当我制作程序时,它会向其中添加 /home/?????/test/lib/release。问号是我的名字,所以我删掉了它。这与我的库输出路径相同。有没有办法阻止 CMake 将其添加rpath 中?这是我的两个 CMakeLists.txt 文件

project(test)
cmake_minimum_required(VERSION 3.1)
set(CMAKE_CXX_STANDARD 11)

set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin/)
set(LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/lib/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/bin/debug/)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/lib/release/)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${PROJECT_SOURCE_DIR}/lib/debug/)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${PROJECT_SOURCE_DIR}/bin/release/)

set(CMAKE_CXX_FLAGS "-Wall")
set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
set(CMAKE_CXX_FLAGS_RELEASE "-O3")

if(NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE Release)
endif()

set(CMAKE_BUILD_RPATH $ORIGIN/.)

add_subdirectory(${PROJECT_SOURCE_DIR}/src/)

add_library(testlib SHARED inlib.cpp)

add_executable(test main.cpp)

target_link_libraries(test testlib)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)