CMake:检查库作为静态目标是否存在于配置阶段

CMake:检查库作为静态目标是否存在于配置阶段,cmake,static-libraries,Cmake,Static Libraries,假设我在一个单独的CMakeLists.txt中声明了一个静态库,如下所示: add_library(foo STATIC foo.cpp) 并在主CMakeLists.txt中 add_subdirectory(foolibfolder) add_executable(bar bar.cpp) target_link_libraries(bar PRIVATE foo) 问题是,如果我在CMakeLists.txt中重命名foo,而忘记在主CMakeLists.txt中重命名,那么只有在

假设我在一个单独的CMakeLists.txt中声明了一个静态库,如下所示:

add_library(foo STATIC foo.cpp)
并在主CMakeLists.txt中

add_subdirectory(foolibfolder)

add_executable(bar bar.cpp)
target_link_libraries(bar PRIVATE foo)

问题是,如果我在CMakeLists.txt中重命名
foo
,而忘记在主CMakeLists.txt中重命名,那么只有在
bar
可执行文件的链接阶段才知道没有库
-llibfoo
。有没有办法在配置阶段检查
bar
依赖性的存在?

据我所知,CMake没有一个“开关”,它要求
target\u link\u库的参数仅作为目标。如果要手动检查,请参阅相关问题。或者,您可以创建
别名
库(命名,例如
foo::foo
),并在
target\u link\u库中使用它
调用:使用策略,CMake将检查每个“名称空间”名称是否与实际目标对应。据我所知,CMake没有“开关”这要求
target\u link\u库
的参数只能作为目标。如果要手动检查,请参阅相关问题。或者,您可以创建
别名
库(命名,例如
foo::foo
),并在
target\u link\u库
调用中使用它:使用策略,CMake将检查每个“名称空间”名称是否与实际目标对应。