已用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
- Visual Studio中:打开项目属性,在CMake设置里添加
检查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

