安装软件包后,vcppkg 非常有帮助地显示相关的 CMake 目标...
包 libwebp:x64-windows 提供 CMake 目标:
find_package(WebP CONFIG REQUIRED)
target_link_libraries(main PRIVATE WebP::webp WebP::webpdemux WebP::libwebpmux WebP::webpdecoder)
Run Code Online (Sandbox Code Playgroud)
但是,如果您不复制它们,那么您可能再也见不到它们了。至少我找不到他们。有谁知道如何为已安装的软件包检索此信息?
CMake 有一个令人恼火的默认行为(我想,我在 CMake 配置中没有看到任何神奇的东西,但我可能是错的,因为我对 CMake 知之甚少),当您将目标添加到项目中时,即使该目标不存在,他也会默默地忽略该行为存在,例如:
项目(堆栈溢出)
// 另一个 CMakeLists.txt
项目(东西)
target_link_libraries(Stuff PUBLIC StackOverlow)
有没有办法强制 CMake 检查您链接的所有项目都target_link_libraries必须存在?