vcpkg:记得安装包后显示的 CMake 说明吗?

vcpkg: recalling the CMake instructions shown after installing a package?

使用 vcpkg 安装软件包后,会显示帮助文本,例如...

The package fmt:x64-windows provides CMake targets:

    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt fmt::fmt-header-only)

... 了解将它们与 CMake 一起使用所需的各种说明。如果你想在将来回忆它而没有写下来,你从哪里得到这些信息?有些图书馆的指令比上面更多。

您可以在名为 'usage' 的文件中找到帮助文本。

您可以在 ports 目录中找到它们,或者如果您只对您的包感兴趣,那么它们在 installed 中。您可以使用以下命令搜索它们:

# VCPKG_ROOT denotes where is vcpkg installed
$ find $VCPKG_ROOT . -name usage
installed/x64-linux/share/openssl/usage
installed/x64-linux/share/gtest/usage

然而,包括 fmt 在内的某些软件包并未在特定文件中提供此信息,它们仅提供目标。它们存储在 $VCPKG_ROOT/installed/<YOUR_ARCHITECTURE>/share/fmt/fmt-targets.cmake.

vcpkg 然后在安装后打印目标列表。我不知道是否有比找到 <package>-targets.cmake 文件并检查内容更好的解决方案。

$ find $VCPKG_ROOT/installed -name *-targets.cmake 
installed/x64-linux/share/cxxopts/cxxopts-targets.cmake
installed/x64-linux/share/fmt/fmt-targets.cmake

所以如果你结合这两种技术,你应该能够找到安装后 vcpkg 正在打印的所有信息。

只需再次 运行 命令 vcpkg install

 .\vcpkg.exe install fmt
Computing installation plan...
The following packages are already installed:
    fmt[core]:x64-windows -> 8.0.1
Package fmt:x64-windows is already installed
Restored 0 packages from **\AppData\Local\vcpkg\archives in 155.9 us. Use --debug to see more details.

Total elapsed time: 58.04 ms

The package fmt provides CMake targets:

    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt)

    # Or use the header-only version
    find_package(fmt CONFIG REQUIRED)
    target_link_libraries(main PRIVATE fmt::fmt-header-only)