[英]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
函数出现两次。 在查看链接命令时,我看到exe
与bar
和foo
相关联,这是不一致的。
我是否会错过依赖声明中的某些内容? 我错过了一个神奇的CMake
关键字吗?
像这样:
add_library(foo SHARED <foo source files>)
target_link_libraries(foo PRIVATE bar)
如果其他库与foo
链接,请确保使用CMake
关键字 PRIVATE
, PUBLIC
或INTERFACE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.