我在W10上安装了Visual Studio Code,以在安装了WSL的情况下(Ubuntu)运行一些代码。
我遵循了以下文章中的步骤:
https://code.visualstudio.com/docs/cpp/config-wsl
但是尝试在Visual Studio Code中编译代码时,我仍然收到以下错误消息:
"g++: error: helloworld.cpp: No such file or directory"
有3个.json文件的配置:
c_cpp_properties.json
{
"configurations": [
{
"name": "Win32",
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "/usr/bin/g++",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64",
"browse": {
"path": [
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": ""
}
}
],
"version": 4
}
launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "/home/marc/projects/helloworld/helloworld.out",
"args": ["-fThreading"],
"stopAtEntry": true,
"cwd": "/home/marc/projects/helloworld/",
"environment": [],
"externalConsole": true,
"windows": {
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
},
"pipeTransport": {
"pipeCwd": "",
"pipeProgram": "c:\\windows\\sysnative\\bash.exe",
"pipeArgs": ["-c"],
"debuggerPath": "/usr/bin/gdb"
},
"sourceFileMap": {
"/mnt/c": "${env:systemdrive}/",
"/usr": "C:\\Users\\Marc\\AppData\\Local\\Packages\\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\\LocalState\\rootfs\\usr\\"
}
}
]
}
tasks.json
{
"version": "2.0.0",
"windows": {
"options": {
"shell": {
"executable": "c:\\windows\\sysnative\\bash.exe",
"args": ["-c"]
}
}
},
"tasks": [
{
"label": "build hello world on WSL",
"type": "shell",
"command": "g++",
"args": [
"-g",
"-o",
"/home/marc/projects/helloworld/helloworld.out",
"helloworld.cpp"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
我在WSL Ubuntu上的路径项目是:
/home/marc/projects/helloworld/
此文件夹为空,因为Visual Studio Code应该通过WSL在当前包含以下内容的文件夹C:\ Users \ Marc \ projects \ helloworld.vscode中运行。
c_cpp_properties.json
helloworld.cpp
launch.json
tasks.json
如何解决?
谢谢
答案 0 :(得分:1)
如果有人遇到此问题,请先阅读官方教程here
,然后使用VS Code设置gcc我遇到了同样的问题,解决方案是将cpp和头文件移到项目文件夹(最多1个文件夹)中,该文件夹位于“ .vscode”文件夹之外。
dir结构应如下所示:
->项目目录(项目根文件夹)
->-> .vscode
->->-> json文件在此处(.vscode内)
->-> helloworld.cpp(项目文件在项目目录中)
答案 1 :(得分:1)
我也遇到了同样的问题。我来这里寻求解决方案,但我没有找到。 我尝试了我能做的一切,但最后,我做了一个简单的改变,解决了这个问题。 我在错误之前将我的代码命名为“Quick Sort.cpp”。现在我将其更改为“QuickSort.cpp”,命名时中间没有任何空格。现在它运行成功。这可能是也可能不是您错误的原因。但请确保你没有犯这个错误。
答案 2 :(得分:0)
似乎编译器无法找到源文件,更新task.json以使用完整路径来编译代码,
"tasks": [
{
"label": "build hello world on WSL",
"type": "shell",
"command": "g++",
"args": [
"-g",
"-o",
"/home/marc/projects/helloworld/helloworld.out",
"${file}"//Just change this
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
${file}
给出了文件的完整路径。
答案 3 :(得分:0)
不要使用任何空格字符保存文件,即单个空格/制表符....
保存没有空格的文件(文件名没有空格)并使用c++扩展名
答案 4 :(得分:-1)
将文件保存在helloworld文件夹中,例如projects \ helloworld \