Ich möchte eine Drittanbieter-libLibrary.so
verknüpfen und mit meinem Programm verteilen. Wenn Benutzer mein Archiv entpackt, wird er diese Ordnerstruktur erhalten:Wie verlinke ich eine gemeinsame Bibliothek mit CMake mit relativen Pfad
game
libLibrary.so
game_executable
game_executable
auf ./libLibrary.so
abhängt.
Meine Projektstruktur:
game
bin
libLibrary.so
lib
Library.h
src
game_executable.cpp
CMakeLists.txt
Mein 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)
Aber was ich meine ist game_executable
auf dem .../game/bin/libLibrary.so
hängt nicht von der ./libLibrary.so
, die mit game_executable
in dem Ordner befindet, macht dies völlig unportabel!
Wie kann ich Link-Pfad relativ statt absolut machen?