簡體   English   中英

CMake鏈接庫未顯示在VisualStudio生成的項目中

[英]CMake linking library doesn't show up in VisualStudio generated project

我正在使用cmake為Windows生成一個VisualStudio項目,並且提供的鏈接功能在生成的VisualStudio項目上似乎不起作用。

生成的項目是一個庫,它依賴於另一個庫作為依賴項。

該項目的生成效果很好,但是無論我如何嘗試,“ Additional Dependencies”條目下都不會出現任何內容。

我在陳述“ add_library(MyLib)”之前和之后都嘗試使用“ link_libraries”和“ target_link_libraries”,例如:

project( MyLib )
...
add_library( MyLib ${source_list} )
...
target_link_libraries ( MyLib ${SOME_LIB_PATH} )
target_link_libraries ( MyLib "${SOME_LIB_PATH}" )
target_link_libraries ( MyLib W:/work/Project/MyLib/ )
target_link_libraries ( MyLib "W:/work/Project/MyLib/" )
target_link_libraries ( MyLib W:/work/Project/MyLib/MyLib.lib )
target_link_libraries ( MyLib "W:/work/Project/MyLib/MyLib.lib" )
target_link_libraries ( MyLib banane )
target_link_libraries ( MyLib whatever )
target_link_libraries ( MyLib "test" )
...
include_directories(
    "Include/"
    ${SOME_LIB_INCLUDE_PATH}
)

包含目錄會正確顯示在項目屬性中。 那是一個錯誤還是我缺少一些東西:)?

Scheff回憶起靜態庫實際上未與其他潛在的靜態庫鏈接的方式為我指明了正確的方向。

即使VisualStudio允許在其UI中指定靜態庫依賴關系,它實際上也沒有發生,並且CMake通過實際上不將其添加到生成的項目中來顯示這一點; 那是令人困惑的部分。

一個靜態庫可以編譯良好,而不必明確地鏈接到另一個靜態庫依賴關系,即使它使用其中的代碼,只要最終的可執行程序鏈接到所述靜態庫及其庫依賴關系(如果我沒有記錯的話)也可以。

因此,謝謝@Scheff的評論!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM