繁体   English   中英

CMake TARGET_LINK_LIBRARIES中包含多个静态库

[英]Multiple static library inclusion in CMake TARGET_LINK_LIBRARIES

我有一个CMake多重定义链接问题与依赖于包含静态库的共享库的可执行文件。

我创建了一个依赖于静态库bar的共享库foo

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

根据定义, bar的内容在库foo

然后我创建一个依赖于foo的可执行exe

add_executable(exe exe.cpp)
target_link_libraries(exe foo)

在链接时,我有一个multiple definition警告/错误,告诉我库bar函数出现两次。 在查看链接命令时,我看到exebarfoo相关联,这是不一致的。

我是否会错过依赖声明中的某些内容? 我错过了一个神奇的CMake关键字吗?

像这样:

add_library(foo SHARED <foo source files>)
target_link_libraries(foo PRIVATE bar)

如果其他库与foo链接,请确保使用CMake 关键字 PRIVATEPUBLICINTERFACE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM