簡體   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