CMake:检查库作为静态目标是否存在于配置阶段
假设我在一个单独的CMakeLists.txt中声明了一个静态库,如下所示: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中重命名,那么只有在
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将检查每个“名称空间”名称是否与实际目标对应。