CMAKE

时间:2018-05-18 09:24:45

标签: 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_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")

0 个答案:

没有答案