如何解决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
之后运行cmake
时,输出显示libfoo.so
与-lbar
而不是libbar.so
链接。
如有必要,我可以尝试创建一个最小的工作示例,但也许有人遇到了相同的问题,可以告诉我出了什么问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。