我正在开发一个使用第三方封闭源代码 SDK 的项目,该 SDK 由单个共享库和相应的头文件组成。我试图避免将库添加到搜索路径,因此我可以尝试针对库的多个不同版本编译项目以进行测试。
我的问题是如何处理共享库以便项目构建和运行良好?我可以构建项目,但是新创建的可执行文件找不到我需要的共享库。如果我将共享库复制到与可执行文件相同的文件夹中,它将运行,但我想避免手动执行该额外步骤以使其他开发人员更轻松。什么是管理共享库依赖项的好方法,以便在构建项目时即使在搜索路径中没有共享库也可以运行?
以下是我的CMakeLists.txt
文件的相关部分,显示了我如何定位共享库:
add_library(theSDK SHARED IMPORTED)
set_target_properties( theSDK PROPERTIES IMPORTED_LOCATION
${CMAKE_CURRENT_SOURCE_DIR}/lib/TheSDK/lib/libSDK.dylib )
add_executable(myProject ${myProject_SOURCES})
target_link_libraries (myProject theSDK)