CMake target_link_libraries未链接共享库

时间:2019-12-12 18:12:27

标签: c++ cmake linker

我正在使用CMake构建和链接以下应用。

add_executable(my_node main.cpp)    
target_link_libraries(my_node dynamic_lib my_dependency)

my_node的来源不直接使用dynamic_libmy_dependency要求dynamic_lib才能运行。

使用readelf和ldd,可以看到在dynamic_lib上找不到my_node;我的应用无法启动。我可以通过设置LD_LIBRARY_PATH来启动该应用。

LD_LIBRARY_PATH="/path/to/dynamic_lib_dir" bash -c './my_node'

或者,如果我在dynamic_lib源中使用来自my_node的类,那么一切都可以。我认为我在这里缺少一些CMake配置来强制my_node直接与dynamic_lib链接。如何将所有这些都整齐地捆起来?

0 个答案:

没有答案