CMake & dyld:未加载库:@rpath/libLTO.dylib
CMake & dyld: Library not loaded: @rpath/libLTO.dylib
我正在使用 LLVM 在 Mac OS X 上使用 CLion 和 CMake 编译我的项目。
我的 CMake 配置是:
cmake_minimum_required(VERSION 3.6)
project(PPAP)
set(CMAKE_CXX_STANDARD 11)
# add_compile_options(-v)
include_directories(
/usr/local/Cellar/python3/3.6.0_1/Frameworks/Python.framework/Versions/3.6/include/python3.6m
/usr/local/Cellar/llvm/3.9.1/include
)
set(SOURCE_FILES src/parser.cpp src/convert.cpp src/ast.cpp)
set(LIBRARIES
/usr/local/Cellar/python3/3.6.0_1/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6.dylib
/usr/local/Cellar/llvm/3.9.1/lib/libLLVM.dylib
)
add_executable(PPAP ${SOURCE_FILES})
target_link_libraries(PPAP ${LIBRARIES})
然后我编译成功了,但是当我运行它的时候,我得到:
dyld: Library not loaded: @rpath/libLTO.dylib
Referenced from: /usr/local/opt/llvm/lib/libLLVM.dylib
Reason: image not found
如何解决这个问题?
仅链接 libLLVM.dylib
是不够的。使用 llvm-config 而不是手动添加库是更好的方法。
这并不理想,但是将库目录添加到 CLion Run/Debug 配置中的 DYLD_LIBRARY_PATH 环境变量使我的错误消失了。
我仍然对无需求助于 DYLD_LIBRARY_PATH 的仅 CMake 解决方案感兴趣。
我正在使用 LLVM 在 Mac OS X 上使用 CLion 和 CMake 编译我的项目。
我的 CMake 配置是:
cmake_minimum_required(VERSION 3.6)
project(PPAP)
set(CMAKE_CXX_STANDARD 11)
# add_compile_options(-v)
include_directories(
/usr/local/Cellar/python3/3.6.0_1/Frameworks/Python.framework/Versions/3.6/include/python3.6m
/usr/local/Cellar/llvm/3.9.1/include
)
set(SOURCE_FILES src/parser.cpp src/convert.cpp src/ast.cpp)
set(LIBRARIES
/usr/local/Cellar/python3/3.6.0_1/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6.dylib
/usr/local/Cellar/llvm/3.9.1/lib/libLLVM.dylib
)
add_executable(PPAP ${SOURCE_FILES})
target_link_libraries(PPAP ${LIBRARIES})
然后我编译成功了,但是当我运行它的时候,我得到:
dyld: Library not loaded: @rpath/libLTO.dylib
Referenced from: /usr/local/opt/llvm/lib/libLLVM.dylib
Reason: image not found
如何解决这个问题?
仅链接 libLLVM.dylib
是不够的。使用 llvm-config 而不是手动添加库是更好的方法。
这并不理想,但是将库目录添加到 CLion Run/Debug 配置中的 DYLD_LIBRARY_PATH 环境变量使我的错误消失了。
我仍然对无需求助于 DYLD_LIBRARY_PATH 的仅 CMake 解决方案感兴趣。