我想链接第三方libLibrary.so
并将其与我的程序一起分发。如果用户解压缩我的存档,他将获得以下文件夹结构:
game
libLibrary.so
game_executable
Run Code Online (Sandbox Code Playgroud)
game_executable
取决于./libLibrary.so
。
我的项目结构:
game
bin
libLibrary.so
lib
Library.h
src
game_executable.cpp
CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)
我的CMakeLists.txt
:
cmake_minimum_required(VERSION 3.7)
project(game)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(SOURCE_FILES src/game_executable.cpp)
include_directories(${CMAKE_SOURCE_DIR}/lib)
add_executable(game ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} ${CMAKE_BINARY_DIR}/libLibrary.so)
Run Code Online (Sandbox Code Playgroud)
但是,我得到的是我的game_executable
依赖于.../game/bin/libLibrary.so
,而不是依赖于./libLibrary.so
文件夹中的game_executable
,这使得它完全不可移植!
如何使链接路径相对而不是绝对?