首页 > 解决方案 > CMake 忽略导入的共享对象

问题描述

我正在开发一个构建共享对象的 CMake 项目,我们称它为libfoo.so必须动态链接到另一个共享对象libbar.so。后一个不是从项目本身包含的文件构建的,而是在调用cmake. 为了让 CMake 知道这个文件,我尝试了以下操作:

add_library(bar SHARED IMPORTED GLOBAL)

set_target_properties(bar PROPERTIES
  IMPORTED_LOCATION some/path/to/libbar.so
)

然后进行构建libfoo.so(在不相关目录中的另一个 CMakeLists.txt 中):

add_library(foo SHARED ...)
target_link_libraries(foo bar) 

但是,在输出显示与而不是链接make VERBOSE=1后运行时,这不能按预期工作。cmakelibfoo.so-lbarlibbar.so

如有必要,我可以尝试创建一个最小的工作示例,但也许有人遇到了同样的问题并且可以告诉我出了什么问题。

标签: cmake

解决方案


推荐阅读