2
我想鏈接第三方libLibrary.so
並將其與我的程序分發。如果用戶解壓我的檔案,他就會獲得這個文件夾結構:如何使用CMake鏈接共享庫與相對路徑
game
libLibrary.so
game_executable
game_executable
取決於./libLibrary.so
。
我的項目結構:
game
bin
libLibrary.so
lib
Library.h
src
game_executable.cpp
CMakeLists.txt
我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)
不過,我得到的是我的game_executable
依賴於.../game/bin/libLibrary.so
,而不是在./libLibrary.so
是在文件夾中有game_executable
,使這完全不可移植!
我該如何使鏈接路徑相對而不是絕對?