gpt4 book ai didi

visual-studio - 通过 Visual Studio 在 WSL 1 上使用 vcpkg

转载 作者:行者123 更新时间:2023-12-04 15:05:47 24 4
gpt4 key购买 nike

我正在尝试使用 Visual Studio 以 WSL 1 为目标编译一个 CMake 项目。继微软的 tutorial在 Visual Studio 中设置 CMake 项目并在 WSL 上调试工作正常。当我尝试使用 Microsoft 的 vcpkg 安装和使用软件包时出现问题将 vcpkg 安装到单独的 Windows 目录并将其集成到 Visual Studio 后的包管理器。

一个失败的简单例子:

# CMakeLists.txt
cmake_minimum_required(VERSION 3.0)
project(test)
find_package(protobuf CONFIG REQUIRED)

错误信息如下:

CMake Error at C:\test\CMakeLists.txt:5 (find_package):Could not find a package configuration file provided by"protobuf" with any of the following names

protobufConfig.cmake
protobuf-config.cmake

Add the installation prefix of "unofficial-sqlite3" to CMAKE_PREFIX_PATH orset "protobuf_DIR" to a directory containing one of the abovefiles. If "protobuf" provides a separate development package orSDK, be sure it has been installed.

我正在让 Intellisense 识别 find_package 并建议安装包或将 vcpkg 命令复制到剪贴板。

CMake 工具链文件指向 WSL-GCC-Debug 配置设置中的“C:/vcpkg/scripts/buildsystems/vcpkg.cmake”文件。在 Linux 系统上安装 vcpkg 并将 CMake 工具链文件设置为相应的路径会产生完全相同的错误输出。

在终端中运行“vcpkg install protobuf:x64-linux”命令会产生以下输出:

Computing installation plan...
The following packages will be built and installed:
protobuf[core]:x64-linux -> 3.14.0#1
Detecting compiler hash for triplet x64-linux...
Error: while detecting compiler information:
The log content at C:\vcpkg\buildtrees\detect_compiler\stdout-x64-linux.log is:
-- Configuring x64-linux
CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:108 (message):
Command failed: ninja -v
Working Directory: C:/vcpkg/buildtrees/detect_compiler/x64-linux-rel/vcpkg-parallel-configure
Error code: 1
See logs for more information:
C:\vcpkg\buildtrees\detect_compiler\config-x64-linux-out.log

Call Stack (most recent call first):
scripts/cmake/vcpkg_configure_cmake.cmake:319 (vcpkg_execute_required_process)
scripts/detect_compiler/portfile.cmake:18 (vcpkg_configure_cmake)
scripts/ports.cmake:128 (include)

Error: vcpkg was unable to detect the active compiler's information. See above for the CMake failure output.

这并不奇怪,因为我不希望它能够在我的 Windows 机器上构建针对 Linux 的包。

我是跨平台开发的新手,我发现有关 vcpkg + WSL 的文档相当稀少。我假设这些软件包应该由在 Linux 系统上运行的 vcpkg 安装是正确的吗?或者我是否需要在 Windows 上设置 CMake 才能使 vcpkg 在 Windows 端运行?

设置:

  • Windows 10 内部版本 19041
  • Visual Studio 2019 (16.8.5) 和用于 Linux 开发的 Visual C++
  • Ubuntu 20.04 LTS 作为 WSL
  • vcpkg commit f226416d2

最佳答案

看来我有点跑题了。

安装在 Windows 机器上的 vcpkg 可以在 Linux 系统上访问,就像访问实际的 CMake 项目一样。将“CMAKE_TOOLCHAIN_FILE”变量设置为绝对“C:/vcpkg/scripts/buildsystems/vcpkg.cmake”路径会转换为“/mnt/c/vcpkg/scripts/buildsystems/vcpkg.cmake”。

缺少的步骤是在 Linux 系统上运行 ./bootstrap-vcpkg.sh 脚本,以确保软件包可以通过 vcpkg 在 Linux 系统上安装。

我还了解到必须通过运行 vcpkg install 命令手动安装软件包,因为没有“内置”方式通过 CMake 执行此操作。

关于visual-studio - 通过 Visual Studio 在 WSL 1 上使用 vcpkg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66146274/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com