У меня проблема с 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
Но библиотека повышения была найдена cmake в CMakeList.Кто-нибудь знает, как это исправить?
Редактировать:
Проблема была в том, чтобы правильно установить rpath, я пытался следовать документации по cmake.Тем не менее, это не сработало для меня.Единственное, что сработало, это добавление этой строки перед target_link_libraries(...)
в CMkaeLists.txt:
set_target_properties(YOUR_PROJECT PROPERTIES LINK_FLAGS "-Wl,-rpath, YOUR_LIB_LOCATION_HERE")