[英]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.