我试图在Mac上使用OpenMP
。
编译后,运行二进制文件时,
我懂了
dyld: Library not loaded: @rpath/libomp.dylib
Referenced from: ./lab1
Reason: image not found
[1] 64552 trace trap ./lab1
我用otool找出了期望的路径。
otool -L lab1
lab1:
@rpath/libomp.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1226.10.1)
该必需的库
libomp.dylib
位于路径/usr/local/opt/llvm/lib
。如何使二进制文件可以找到它?
最佳答案
尝试使用CMake POST_BUILD
操作将所需的路径添加到可执行文件的rpath中:
add_custom_command(TARGET lab1
POST_BUILD COMMAND
${CMAKE_INSTALL_NAME_TOOL} -add_rpath /usr/local/opt/llvm/lib
$<TARGET_FILE:lab1>)
仅当
lab1
是使用add_executable
创建的CMake可执行目标时,此方法才有效。关于c++ - 如何使用CMake正确设置动态库路径?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43289965/