You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修复vcpkg提示‘找不到unofficial-skia提供的包配置文件’错误?

问题描述

我按照微软官方指南使用vcpkg,但任何库都无法正常工作,试过skia和unofficial-skia。当前环境是Windows系统,使用Clang编译器。

错误信息

[main] Configuring project: project
[proc] Executing command: "C:\Program Files\CMake\bin\cmake.EXE" -DCMAKE_TOOLCHAIN_FILE=C:/Users/PC/Desktop/Forks/vcpkg/scripts/buildsystems/vcpkg.cmake -SC:/Users/PC/Desktop/Experiments/project -BC:/Users/PC/Desktop/Experiments/project/build -G Ninja
[cmake] CMake Error at CMakeLists.txt:6 (find_package):
[cmake] Could not find a package configuration file provided by "unofficial-skia"
[cmake] with any of the following names:
[cmake]
[cmake] unofficial-skiaConfig.cmake
[cmake] unofficial-skia-config.cmake
[cmake]
[cmake] Add the installation prefix of "unofficial-skia" to CMAKE_PREFIX_PATH or
[cmake] set "unofficial-skia_DIR" to a directory containing one of the above files.
[cmake] If "unofficial-skia" provides a separate development package or SDK, be
[cmake] sure it has been installed.
[cmake]
[cmake]
[cmake] -- Configuring incomplete, errors occurred!
[proc] The command: "C:\Program Files\CMake\bin\cmake.EXE" -DCMAKE_TOOLCHAIN_FILE=C:/Users/PC/Desktop/Forks/vcpkg/scripts/buildsystems/vcpkg.cmake -SC:/Users/PC/Desktop/Experiments/project -BC:/Users/PC/Desktop/Experiments/project/build -G Ninja exited with code: 1

我的CMakeLists.txt(错误出现在find_package行)

cmake_minimum_required(VERSION 3.10)

project(HelloWorld)

set(CMAKE_CXX_STANDARD 23)
find_package(unofficial-skia CONFIG REQUIRED)

add_executable(HelloWorld helloworld.cpp)
解决步骤
  • 确认vcpkg已安装对应环境的unofficial-skia
    打开命令行,进入vcpkg所在目录(C:/Users/PC/Desktop/Forks/vcpkg),执行适配Clang环境的安装命令:

    vcpkg install unofficial-skia:x64-windows-clang
    

    若为32位环境,替换为x86-windows-clang,必须确保triplet与编译环境匹配。

  • 完成vcpkg与CMake的集成
    执行以下命令让vcpkg自动配置CMake工具链:

    vcpkg integrate install
    
  • 修正CMakeLists.txt的依赖链接
    找到库后需将其链接到可执行文件,修改后的CMakeLists.txt如下:

    cmake_minimum_required(VERSION 3.10)
    
    project(HelloWorld)
    
    set(CMAKE_CXX_STANDARD 23)
    find_package(unofficial-skia CONFIG REQUIRED)
    
    add_executable(HelloWorld helloworld.cpp)
    # 链接unofficial-skia库
    target_link_libraries(HelloWorld PRIVATE unofficial::skia)
    
  • 验证CMake工具链路径
    检查执行CMake时指定的CMAKE_TOOLCHAIN_FILE路径是否与实际vcpkg安装目录一致,避免拼写错误。

  • 清理旧构建缓存
    删除项目下的build目录,重新运行CMake配置命令,排除缓存干扰。

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

火山引擎 最新活动