首页 > 解决方案 > 使用 WSL 和 VS2019 进行 Cmake

问题描述

我正在尝试在 Windows10/Ubuntu/VS2019 中使用 WSL 编译 C++ 程序。当我尝试构建程序时,我遇到了以下错误。

CMake 生成开始用于配置:“WSL-GCC-Debug”。

在 $HOME/.vs/cmake/bin/cmake 找到 cmake 可执行文件。

$HOME/.vs/cmake/bin/cmake -G "Ninja" -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="/mnt/d/Work/j/install/" /mnt/d/Work/j /CMakeLists.txt;

[CMake] /home/s/.vs/cmake/share/cmake-3.18/Modules/CMakeDetermineSystem.cmake:185 (configure_file) 处的 CMake 错误:

[CMake] configure_file 配置文件问题

[CMake] 调用堆栈(最近的调用优先):

[CMake] CMakeLists.txt:8(项目)

[CMake] -- C 编译器标识为 GNU 9.3.0

[CMake] /home/s/.vs/cmake/share/cmake-3.18/Modules/CMakeDetermineCCompiler.cmake:222 (configure_file) 处的 CMake 错误:

[CMake] configure_file 配置文件问题

[CMake] 调用堆栈(最近的调用优先):

[CMake] CMakeLists.txt:8(项目)

[CMake] -- CXX 编译器标识为 GNU 9.3.0

[CMake] /home/s/.vs/cmake/share/cmake-3.18/Modules/CMakeDetermineCXXCompiler.cmake:220 (configure_file) 处的 CMake 错误:

[CMake] configure_file 配置文件问题

[CMake] 调用堆栈(最近的调用优先):

[CMake] CMakeLists.txt:8(项目)

[CMake] -- 检测 C 编译器 ABI 信息

[CMake] -- 检测 C 编译器 ABI 信息 - 失败

[CMake] -- 检查工作的 C 编译器:/usr/bin/cc

[CMake] -- 检查工作的 C 编译器:/usr/bin/cc - 工作

[CMake] -- 检测 C 编译特性

[CMake] -- 检测 C 编译特性 - 完成

[CMake] /home/s/.vs/cmake/share/cmake-3.18/Modules/CMakeTestCCompiler.cmake:82 (configure_file) 处的 CMake 错误:

[CMake] configure_file 配置文件问题

[CMake] 调用堆栈(最近的调用优先):

[CMake] CMakeLists.txt:8(项目)

[CMake] -- 检测 CXX 编译器 ABI 信息

[CMake] -- 检测 CXX 编译器 ABI 信息 - 失败

[CMake] -- 检查工作的 CXX 编译器:/usr/bin/c++

[CMake] -- 检查工作的 CXX 编译器:/usr/bin/c++ - 工作

[CMake] -- 检测 CXX 编译特性

[CMake] -- 检测 CXX 编译特性 - 完成

[CMake] /home/s/.vs/cmake/share/cmake-3.18/Modules/CMakeTestCXXCompiler.cmake:75 (configure_file) 处的 CMake 错误:

[CMake] configure_file 配置文件问题

[CMake] 调用堆栈(最近的调用优先):

[CMake] CMakeLists.txt:8(项目)

[CMake] -- 配置不完整,出现错误!

[CMake] 另见“/mnt/d/Work/j/build/CMakeFiles/CMakeOutput.log”。

[CMake] 另见“/mnt/d/Work/j/build/CMakeFiles/CMakeError.log”。

[制作]

cd /mnt/d/Work/j/build;$HOME/.vs/cmake/bin/cmake -G "Ninja" -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="/mnt/d/Work/j /install/" /mnt/d/Work/j 2>&1; 返回退出代码:1

我正在使用以下构建配置。

{
  "name": "WSL-GCC-Debug",
  "generator": "Ninja",
  "configurationType": "Debug",
  "buildRoot": "${projectDir}\\build\\",
  "installRoot": "${projectDir}\\install\\",
  "cmakeExecutable": "cmake",
  "cmakeCommandArgs": "",
  "buildCommandArgs": "",
  "ctestCommandArgs": "",
  "inheritEnvironments": [ "linux_x64" ],
  "wslPath": "${defaultWSLPath}",
  "addressSanitizerRuntimeFlags": "detect_leaks=0",
  "variables": [],
  "intelliSenseMode": "linux-gcc-x64"
}

有人能帮忙吗?

标签: c++cmakewindows-subsystem-for-linux

解决方案


好的。我缺少 WSL 的 zip 工具。

sudo apt install g++ gdb make rsync zip

安装命令修复它


推荐阅读