C++ CMAKE中rpath的问题
我对cmake有点问题,比如 我想链接到我正在编译的共享库的库之一是boost。 所以,我试着:C++ CMAKE中rpath的问题,c++,cmake,C++,Cmake,我对cmake有点问题,比如 我想链接到我正在编译的共享库的库之一是boost。 所以,我试着: target_link_libraries(my_project ${Boost_FILESYSTEM_LIBRARY} ${Boost_SYSTEM_LIBRARY} ${Boost_CHRONO_LIBRARY} ${Boost_DATE_TIME_LIBRARY} ${Boost_REGEX_LIBRARY} ${Boost_SIGNALS_LI
target_link_libraries(my_project
${Boost_FILESYSTEM_LIBRARY}
${Boost_SYSTEM_LIBRARY}
${Boost_CHRONO_LIBRARY}
${Boost_DATE_TIME_LIBRARY}
${Boost_REGEX_LIBRARY}
${Boost_SIGNALS_LIBRARY}
${Boost_THREAD_LIBRARY})
但是,当我在终端中执行检查链接时
ldd libmy_project.so
libboost_system.so.1.66.0 => not found
libboost_chrono.so.1.66.0 => not found
libboost_date_time.so.1.66.0 => not found
libboost_regex.so.1.66.0 => not found
libboost_signals.so.1.66.0 => not found
libboost_thread.so.1.66.0 => not found
但是boost库是由cmake在CMakeList中发现的。
有人知道怎么解决这个问题吗
编辑:
问题是要正确设置rpath,我试图遵循cmake文档。然而,这对我不起作用。
唯一有效的方法是在CMkaeLists.txt中的目标链接库(…)
之前添加这一行:
set_target_properties(YOUR_PROJECT PROPERTIES LINK_FLAGS "-Wl,-rpath, YOUR_LIB_LOCATION_HERE")
动态加载程序(
ldd
)使用RPATH机制查找库。如果已将Boost安装为非系统默认路径,则需要调整RPATH以查找它。另请参阅此问题:。是的,但我在正确调整rpath时遇到一些问题,我仍然无法链接该,但在正确调整rpath时遇到一些问题-然后用您尝试过的内容的描述更新问题帖子。CMake的版本是什么?它必须是3.11或更高版本,参见。我试图遵循cmake文档。但是,它对我不起作用。
-再次,你说你的代码有问题。。。但是显示另一个代码,它是有效的。你到底有什么问题?