我正在尝试在我的项目中包含一个动态库,我正在使用以下CMake脚本设置编译:
find_package( DLIB 18.18.0 REQUIRED )
include_directories( ${DLIB_INCLUDE_DIRS} )
add_executable( executable executable.cxx )
target_link_libraries( executable ${dlib_LIBRARIES} )
如果我打印变量$ {dlib_LIBRARIES}的目录,我得到:
/Users/../INSTALL/lib/libdlib.dylib
哪个是正确的并且编译。 执行可执行文件时出现问题,并出现以下运行时错误:
dyld: Library not loaded: libdlib.18.18.0.dylib
Referenced from: /Users/.../bin/executable
Reason: image not found
Trace/BPT trap: 5
这似乎是逻辑,因为如果我运行otool -L可执行文件,我会获得相对路径而不是绝对路径:
$otool -L executable
libdlib.18.18.0.dylib (compatibility version 0.0.0, current version 18.18.0)
为什么otool显示的路径与target_link_libraries添加的路径不一样,我怎样才能用cmake解决这个问题?