Reputation: 13470
I have simple console application in C++ that I succeed to compile with Visual Studio.
I wanted to try Visual Studio Code so I copied the directory to the computer with Visual Studio Code installed.
I installed the C++ extension:
I put break point at the beginning and press F5 and I received an error:
launch: program 'enter program name, for example c:\Users\student1\Desktop\ConsoleApp\a.exe' does not exist.
Of course the the program does not exist, I am compiling it in order for the code to become the program.
I followed the instruction and I went to the launch.json
file:
I changed the "program"
value to: "${workspaceRoot}/a.exe"
instead of "enter program name, for example ${workspaceRoot}/a.exe"
.
But the same problem still exist.
Any idea ?
Upvotes: 51
Views: 393729
Reputation: 21
This video explain it very well how to setup vscode for c, I did it on Ubuntu. https://www.youtube.com/watch?v=9pjBseGfEPU
Then I use this reference to setup c++, https://code.visualstudio.com/docs/cpp/config-linux
I just had to replace "command": "/usr/bin/gcc" with "command": "/usr/bin/g++", from the example on the video. and you can update the label on both tasks and launch if you want it.
this is how my c++ setup ended up. tasks.json for c++
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
// "command": for classic c, "command": "/usr/bin/gcc",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}/bin/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"isDefault": true,
"kind": "build"
}
}
]
}
launch.json for c++
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/bin/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++ build active file"
}
]
}
Upvotes: 1
Reputation: 1
If you're using CMake, you could just add the CMake Tools extension and build/run debug from there. Worked for me.
Check out the link to the official CMake Tools extension or run ext install ms-vscode.cmake-tools
from VSCode (Ctrl + Shift + P).
Upvotes: 0
Reputation: 11
This might happen since default task.json
"args": is empty and linking of multiple files is failure. Following solved the issue .exe does not exist:
"args": [
"-g",
"firstFile.cpp",
"secondFile.cpp",
"main.cpp",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
After that, clicking Run and Debug did not failed by instructing launch.json
. I could debug without terminal.
Upvotes: 1
Reputation: 845
Including the "${workspaceFolder}" in the "program" property fixed it for me. (I deleted it while monkeying around. Grr.)
"program": "${workspaceFolder}/main", # i.e. not just "main"
Upvotes: 1
Reputation: 11
In launch.json file where name : (Gdb) launch ,
step 1: enter the complete address of program for eg, c:/users/.....xyz.exe.
step 2: In Mi-debugger path complete address of bin in mingw folder which contains the Gdb debugger so the address would be c:/mingw/....gdb.exe repeat step 2 for the first configuration in launch.JSON
step 3 IN CWD , copy the same path but only till /bin
Upvotes: 0
Reputation: 760
In my case i had 3 file which had main()
function on all of them. this lead to cause failure build. Make sure you have only 1 file with main()
function.
Upvotes: 1
Reputation: 11
If you are using c you have to run (or debug) the file that contains the main function.
If you are doing so, and you are using math.h library in your program, you have to open tasks.json by using shortcut:
ctrl+shift+p -> tasks:configure default build task
In the value of "args" key you will find an array of the arguments that will be passed to the compiler (or debugger) that is specified in the value of "command" key. Append the argument "-lm" to that array. Also if you are compiling a multifile project in the list of "args" change the "${file}" to "*.c"
Upvotes: 1
Reputation: 11
I had the same issue.
For me what worked is deleting the folder .vscode
and then re-add to 'view' > 'Add Folder to Workspace', the folder where my projects are.
See here.
Upvotes: 1
Reputation: 71
This problem is mainly due file name , as per below table the name of the binary will be audioMatrixBin in windows folder not audioMatrixBin.exe, but we have to mention filename.exe here.
{
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "audioMatrixBin.exe",
"args": ["AudioMxrMgr4Subaru.conf"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true
}
]
}
Upvotes: 7
Reputation: 4908
Nuke everything and use the build active file tasks:
.vscode
folder.Terminal > Configure Tasks
C/C++: clang build active file
)..vscode/tasks.json
std
flag (i.e. "-std=c++17"
) at the top of the args array.Upvotes: 2
Reputation: 63
To resolve this proble one has to make sure three things are in order:
gcc --version
and
gdb --version
and get the correct results
gcc -c myfile.c -o myfile.exe
"program": "${workspaceFolder}/myfile.exe"
"miDebuggerPath": "C:/MinGW/bin/gdb.exe"
Upvotes: 1
Reputation: 544
The error ".exe file does not exist" in vscode can occur because of the following reasons:
Upvotes: 5
Reputation: 53
Go to launch.json
(we've encounter problem with .json
file that's why we're here)
Change 'cwd'
& 'miDebuggerPath'
where your 'gdb'
is(mine is default).
"cwd": "C:\\MinGw\\bin",
"miDebuggerPath": "C:\\MinGw\\bin\\gdb.exe"
(you can copy-paste if yours is default too).
Now run with 'gcc.exe-Build and debug active file'
(run your file with this option, this should run)
Upvotes: 2
Reputation: 208
the problem for me was an error during the run time that the compiler didn't notice before. then the .exe
file didn't built, therefore the .exe
file does not exist
so you have to check if your script is fine even if no error is found by the debugger.
Upvotes: 0
Reputation: 21
It seems that launch.json file needs to have the correct configs.
please check the configurations as per the below link, if you are using VS build tools https://code.visualstudio.com/docs/cpp/config-msvc
or delete the launch.json file, gotoRun > Add Configuration... and then choose C++ (Windows), Choose cl.exe build and debug active file. Check the new name in launch.json and try again.
Upvotes: 1
Reputation: 1
Make sure your "program"
and "cwd"
properties are actually correct. Check the path it tells you and compare with the path you want them to be.
Upvotes: 3
Reputation: 27465
Spent 2 hours on this.
Ideally, VS Code shouldn't make so difficult for beginners
VS Code can give prompts for each installation, etc. automatically, in a step by step manner, like Idea editors, so that it wont be so long procedure for beginners.
Sequence of steps to do (most of the things are one time):
one time: install a C/C++ complier, add to PATH environment variable install C/C++ plugin for visual studio code tell visual studio code where the compiler is and what is the short cut to build and run these are files under ".vscode" (see below) every project: crate a project build project run project
Detailed:
One time:
Note: Point 'A' below can be skipped if you already have a compiler. A. Install a compiler (if you don't have one already) Example below, installs MinGW c++ compiler on Windows: Download from here: https://sourceforge.net/p/mingw-w64/mailman/message/36103143/ 1. For windows, I downloaded https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/mingw-w64-v5.0.3.zip 2. unzip mingw-w64-v5.0.3.zip 3. rename unzipped folder to MinGW, Move it to C:\MinGW\ 4. verify that you have "C:\MinGW\bin\gcc.exe" director/file, otherwise make necessary change to folder B. Add your compiler to PATH environment variable 1. Add "C:\MinGW\bin" to PATH > user environment variable 2. verify gcc command works from cmd restart your cmd run below command in 'cmd' where gcc The output should be: C:\MinGW\bin\gcc.exe C. Restart your visual studio code 1. install C/C++ plugin, as below: From Menu View > Extension Search & Install below extension C/C++
Every project:
Note: You can copy paste the .vscode folder every time
A. Create a below "myproj" folder & files, like below in below structure: C:\myproj\myfile.cpp C:\myproj\.vscode\ C:\myproj\.vscode\c_cpp_properties.json C:\myproj\.vscode\launch.json C:\myproj\.vscode\settings.json C:\myproj\.vscode\tasks.json
B. Download & overwrite the above ((5 files)), from below link
https://github.com/manoharreddyporeddy/my-programming-language-notes/tree/master/vscode-c%2B%2B
C. Restart your visual studio/vs code D. Open project in vs code & run project: Drag and drop "myproj" folder into visual studio code BUILD PROJECT: press "Ctrl + Shift + B" to build your myfile.exe RUN PROJECT: press "Ctrl + F5" to run your myfile.exe
Thats all, hope that helped.
More info: https://code.visualstudio.com/docs/languages/cpp
Optional
To format C++ better
C++ formatting 1. Install Clang: Download from: http://releases.llvm.org/download.html#5.0.2 I have downloaded for windows "Pre-Built Binaries:" > Clang for Windows (64-bit) (LLVM-6.0.0-win64.exe) 2. Select Add to PATH while installing. 3. Install vs code plugin "Clang-Format" by xaver, this wraps above exe. 4. Restart visual studio code. Note: Issue: As of June 2018, Clang does not format the newer C++17 syntax correctly. Solution: If so, move that code to another file/ comment & restart the vs code. That's all. Now press Alt+Shift+F to format (similar key combination in other OS)
Upvotes: 71