繁体   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