You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已用vcpkg安装spdlog,CMakeLists.txt仍无法找到该库求排查建议

问题描述

我已通过vcpkg正确安装了spdlog库,但CMakeLists.txt仍无法找到它。

报错信息

CMake Error at C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake:853 (_find_package):
  Could not find a package configuration file provided by "spdlog" with any
  of the following names:

    spdlogConfig.cmake
    spdlog-config.cmake

  Add the installation prefix of "spdlog" to CMAKE_PREFIX_PATH or set
  "spdlog_DIR" to a directory containing one of the above files.  If "spdlog"
  provides a separate development package or SDK, be sure it has been
  installed.
Call Stack (most recent call first):
  CMakeLists.txt:38 (find_package)

我的配置

CMakeLists.txt内容

cmake_minimum_required( VERSION 3.15 FATAL_ERROR )
message(STATUS "Using toolchain file: ${CMAKE_TOOLCHAIN_FILE}")

project( test VERSION 0.1 LANGUAGES CXX )
find_package(spdlog CONFIG REQUIRED)

vcpkg安装状态

spdlog:x64-windows                                1.11.0#1            Very fast, header only, C++ logging library

补充说明:项目针对Visual Studio配置。


调试排查建议
  • 确认vcpkg工具链文件是否正确加载
    检查CMake输出中的Using toolchain file:路径是否指向vcpkg的vcpkg.cmake(通常在C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake)。如果没有输出这条信息,说明配置CMake时未指定工具链文件,需通过以下方式补充:

    • Visual Studio中:打开项目属性,在CMake设置里添加-DCMAKE_TOOLCHAIN_FILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake
    • 命令行配置时:cmake .. -DCMAKE_TOOLCHAIN_FILE=C:/src/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows
  • 检查spdlog安装目录的完整性
    前往vcpkg的installed目录(C:/src/vcpkg/installed/x64-windows),查看是否存在share/spdlog文件夹,其中需包含spdlogConfig.cmake及相关配置文件。若缺失,执行vcpkg remove spdlog:x64-windows后重新安装vcpkg install spdlog:x64-windows。

  • 验证目标平台三元组匹配
    确保安装的spdlog三元组(x64-windows)与CMake配置的目标平台一致。若Visual Studio项目为32位(x86)但安装了64位库,会出现找不到配置文件的情况。可通过vcpkg list确认安装的三元组,同时在CMake配置时指定-DVCPKG_TARGET_TRIPLET=x64-windows(或对应平台)。

  • 手动指定spdlog_DIR路径
    在CMakeLists.txt中或配置阶段手动设置spdlog_DIR,指向配置文件所在目录,示例:

    set(spdlog_DIR "C:/src/vcpkg/installed/x64-windows/share/spdlog")
    find_package(spdlog CONFIG REQUIRED)
    

    或在配置CMake时添加参数:-Dspdlog_DIR=C:/src/vcpkg/installed/x64-windows/share/spdlog

  • 更新vcpkg与CMake版本
    旧版本的vcpkg或CMake可能存在兼容性问题,执行vcpkg update更新vcpkg,同时确保CMake版本不低于3.15(建议升级至3.20+的稳定版本)。

  • 检查Visual Studio的CMake集成设置
    若使用Visual Studio内置CMake工具,确认「CMake Settings for [ProjectName]」中,「Toolchain file」已正确设置为vcpkg的工具链文件,且「Configuration type」与安装的库平台匹配。


内容的提问来源于stack exchange,提问作者xeon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 10:53:18