我正在使用cmake为Windows生成一个VisualStudio项目,并且提供的链接功能在生成的VisualStudio项目上似乎不起作用。
生成的项目是一个库,它依赖于另一个库作为依赖项。
该项目的生成工作正常,但是无论我如何尝试,都不会在“其他依赖项”条目下显示任何内容。
在声明“ 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}
)
包含目录正确显示在项目属性中。 那是一个错误还是我错过了什么:)?
答案 0 :(得分:0)
Scheff回忆起静态库与其他潜在的静态库实际上没有链接,从而为我指明了正确的方向。
即使Visual Studio允许在其UI中指定静态库依赖关系,它实际上也没有发生,并且CMake通过实际上不将其添加到生成的项目中来显示此依赖关系;那是令人困惑的部分。
只要我没有记错的话,即使最终可执行文件链接了该库及其库的依赖关系,即使它使用其中的代码,静态库也可以明确地链接到另一个静态库的依赖关系,从而进行编译。 / p>
所以,谢谢@Scheff的评论!