使用 WSL 和 VS2019 进行 Cmake
Posted
技术标签:
【中文标题】使用 WSL 和 VS2019 进行 Cmake【英文标题】:Cmake with WSL and VS2019 【发布时间】:2021-03-12 00:56:10 【问题描述】:我正在尝试在 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/工作/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”。
[CMake]
cd /mnt/d/Work/j/build;$HOME/.vs/cmake/bin/cmake -G "Ninja" -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="/mnt/d/工作/j/安装/" /mnt/d/工作/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"
有人可以帮忙吗?
【问题讨论】:
【参考方案1】:好的。我缺少 WSL 的 zip 工具。
sudo apt install g++ gdb make rsync zip
安装命令修复它
【讨论】:
以上是关于使用 WSL 和 VS2019 进行 Cmake的主要内容,如果未能解决你的问题,请参考以下文章
Win10+WSL2+Ubuntu 18.04(WSL下)+VS Code(Win10下)+TexLive 2019(Ubuntu下)安装和配置
VS远程调试(Visual Studio)远程连接到linux cmake(跨平台开发)(适用于VS2019,且远程目标平台cmake版本大于等于3.8)