我构建了一个名为 foo_shared_debug.dylib 的共享库。我想将它链接到一个名为 bar 的可执行文件。
我能够构建酒吧,但在运行时我得到了
dyld[xxxx]:未加载库:foo_shared_debug.dylib ...
这是我的目录结构
这是我的CMakeLists.txt
cmake_minimum_required(VERSION 3.28)
project(tryshared)
set(CMAKE_CXX_STANDARD 23)
add_library(foo SHARED IMPORTED GLOBAL)
set_target_properties(foo PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/shared/foo_shared_debug.dylib)
add_executable(bar main.cpp)
target_link_libraries(bar foo)
如果我也将 foo_shared_debug.dylib 放入 /usr/local/lib 中,我就能够解决该问题,但这并不理想。有任何想法吗?谢谢。
我最终将库(
foo_shared_debug.dylib
)直接放在构建文件夹(${CMAKE_BINARY_DIR}
)中。然后我的CMakeLists.txt
文件变成:
add_library(foo SHARED IMPORTED GLOBAL)
set_target_properties(foo PROPERTIES IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/foo_shared_debug.dylib)
add_executable(bar main.cpp)
target_link_libraries(bar foo)