与MAC中的动态库目录不一致

时间:2015-12-16 15:45:38

标签: c++ dynamic cmake rpath

我正在尝试在我的项目中包含一个动态库,我正在使用以下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解决这个问题?

0 个答案:

没有答案