我遇到了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_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
但是增强库是由CMakeList中的cmake找到的。 有谁知道如何解决这个问题?
编辑:
问题是要正确设置rpath,我试着按照cmake文档。但是,它对我不起作用。
唯一有效的方法是在CMkaeLists.txt中的target_link_libraries(...)
之前添加此行:
set_target_properties(YOUR_PROJECT PROPERTIES LINK_FLAGS "-Wl,-rpath, YOUR_LIB_LOCATION_HERE")