How to run C++ program from terminal VS Code - c++

I want to run a C++ program in VS Code. All I get from Google is that click on run and debug (the play button) on top right in VS Code and my program will be up and running. I don't want to do from that. I want to do it from terminal.
Example, to run:
A Python file I do: python3 fileName.py
A Flutter program: flutter run
A Java file: javac fileName.java
A Go file: go run fileName.go
Is there any command similar like this in C++?
Apologies, I know my question is a little naïve.

i guess the short answer would be :
$ g++ -o < name-you-want-to-give> source.cpp
In place of replace it by any name like myprogram, etc.
./myprogram
This mean you had to install gcc compiler beforehand.

I need to be in my project directory and then i need to run
g++ 01inputFromUser.cpp -o 01inputFromUser && "/home/aman/Desktop/arjun/cpp/"01inputFromUser
so this was what I was looking for
g++ fileName.cpp -o fileName && "/path/to/project/"fileName

Related

Can't find compiled executable in Linux terminal

I've created a hello world program in c++ and tried to compile it in c++ like this.
[aleksf#ic-ifi-rh8-026 cpp]$ g++ testing.cpp -o testing
I know that the testing file was created because
[aleksf#ic-ifi-rh8-026 cpp]$ ls -A
testing testing.cpp
But when I try to execute the file it can't find it.
[aleksf#ic-ifi-rh8-026 cpp]$ .\testing
bash: .testing: command not found...
I don't understand whats gone wrong as this is what I've been told works.
Linux does not use \ it uses / for directory paths. Try ./testing.
Like Russel have pointed out, you need to use forward slash: ./testing
The file you're trying to run also needs to have the executable mode bit set. You can fix that by running: chmod +x testing

Script for Notepad++ NppExec for C++ in ubuntu

I just switched to ubuntu and I wanted to setup notepad++ for CPP.
So I used the NppExec plugin to compile within notepad++,
My script was :
npp_save
g++ "$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)\$(NAME_PART)obj"
./"$(NAME_PART)obj"
Here the "obj" I used is to just save the file with an "obj" keyword nothing else.
The last line ./"$(NAME_PART)obj" is to run the program.
But it looks not working in ubuntu, it produces this error:
NPP_SAVE: Z:\home\username\cpp\test.cpp
g++ "Z:\home\username\cpp\test.cpp" -o "Z:\home\username\cpp\testobj"
; about to start a child process: "g++ "Z:\home\username\cpp\test.cpp" -o "Z:\home\username\cpp\testobj"
CreatProcess() failed with error code 2:
File not found.
./"testobj"
; about to start a child process: "./"testobj""
CreatProcess() failed with error code 2:
File not found.
I have investigated some of what I think is the problem, so I think is the usage of / and \ in changing the directory.
I don't know how to fix that, so I can not be sure.
Any ideas? :) I am using vim btw in the same machine and it is working perfectly.
In theory it might be possible (see below), in practice it is rather convoluted and works only for simple compiles (like single file hello world type).
I would suggest you try a linux program, e.g.
an editor like
scite (same editing engine as notepad++) or
kate
or a real IDE like
kdeveloper or
qtcreator.
The problems with Notepad++ inside wine and g++ outside wine (from the linux install ) are this:
notepad++ inside wine under linux is still a windows program
NppExec can only do, what a cmd inside wine can do.
starting g++ directly inside cmd is an error due to g++ being a linux binary and not a windows binary
that is your CreatProcess() failed with error code 2, it means: you are trying to execute a linux program inside wine.
That does not work! (At least not so easy.)
Though you can start linux program inside cmd inside wine using start /unix ...
started this way, g++ wants linux paths and NppExec through its variables will provide only windows paths (whatever wine has set up as drives like Z:\home\username\src\hello.cpp)
though you can convert wine paths to linux paths via the winepath -u command.
g++ started through 'start /unix ... ' inside a cmd inside wine has no proper terminal to report errors to you
though you can start an xterm for g++ and have g++ reports its messages to the xterm
the downside is that g++ will report errors using the linux paths in the xterm, so you cannot double click on an error message an get to the corresponding filename and line.
You get the idea: its complicated not comfortable.
What worked for me for a helloword.cpp was this NppExec script:
NPP_SAVE
npp_run cmd /c start /unix /usr/bin/xterm -e "/usr/bin/winepath -u '$(FULL_CURRENT_PATH)' | xargs g++ -o /tmp/a.out && /tmp/a.out ; echo 'Press return'; read"
The second line
uses an xterm,
let winepath convert the Z:\home\... path to /home/... and
have that send to g++ for compilation using /tmp/a.out as binary
if compile is successfull, /tmp/a.out is executed
the echo and read are for keeping the xterm open so that you can read the output.
If you really want to use Notepad++ inside wine, one option might be using Gnu Make outside of wine and have NppExec run make all or make run similar to the g++ in my script example. That would work for more complicated compiles.

C++ Programs can't run from Notepad++

I've tried to compile the c++ programs from the Notepad++ editor.
I am using mingw64 g++ compiler here.
Added the execution script using NppExec plugin in notepad++, the script I have used is given below,
npp_save
cd $(CURRENT_DIRECTORY)
D:\mingw64\bin\g++.exe -g "$(FILE_NAME)"
Saved this script as a macro and executed to run a cpp program, but getting the System error The program can't start because libwinpthread-1.dll is missing from your computer.
The same mingw64 compiler am using in Code::Blocks and its working fine.
How we can solve this issue ?
cmd /k gcc -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe" "$(FULL_CURRENT_PATH)" && CLS && "$(CURRENT_DIRECTORY)\$(NAME_PART).exe" & PAUSE & EXIT
Press ctrl+F5 and input this command, then click 'run'. You can also save it as a shortcut.

How to run/compile a C++ program in Nitrous.io?

I am just starting to use Nitrous.IO and I can't seem to find any information on the web on how to run C++ programs you make in it. Any help on how to run a C++ app made in Nitrous would be a huge help.
All commands are to be run within the console
Step 1:
Get inside the appropriate directory using the following command:
cd ./folder/subfolder/etc.
Step 2:
Type in the following command to run a fileName.cpp program:
// This will make a separate file named 'fileName'
// within the directory you are working in.
// This can now be run in the console.
g++ -o fileName fileName.cpp
Step 3:
Type in the following command to run your program:
//The output will display in the console. Enjoy!
./fileName
ps: answer was there

how to test C or C++ snippet quickly?

I am using Ubuntu and Eclipse as an IDE for C/C++.
I currently have a big project in Eclipse. Sometimes, I want to test some small functions written in C/C++ but I don't want to re-create a new project in Eclipse. It is much time consuming and slow. I want to ask if there is any better way to do this ?
(In the past, I usually used a combination of GEDIT and GCC from the shell, but I really like the auto-completion or intellisense feature in Eclipse, which GEDIT does not have. I have also tried Scribes but it does not have a full intellisense feature like Eclipse)
Use online compiler like Ideone or Codepad.
Ofcourse, they dont provide you auto code completion feature & other fancy features but that is the price you pay for quick & easy way of checking stand alone functions.
This method works without an internet connection and without exposing your code.
<ctrl>+<alt>+T <-- 0) opens a terminal
vi test.cc <-- 1) hackery
...
g++ -Wall -Wextra test.cc && ./a.out <-- 2) compile + run
rm test.cc <-- 3) clean up (optional)
Replace vi with your favourite editor or cat. Can't be less obtrusive.
Some editors like SciTE have some very basic code completion (btw btw: SciTE has shortcuts to directly compile and run code from within the editor).
Btw: QtCreator gives some decent "intellisense", and the project files are minimal. A single project file line is enough for such one-function-test.
unkulunkulu points out that you can also replace step 2 like this (there should better be no Makefile in your try-out folder; could conflict with existing targets in that):
<ctrl>+<alt>+T <-- 0) opens a terminal
vi test.cc <-- 1) hackery
...
make test && test <-- 2) compile + run
rm test.cc <-- 3) clean up (optional)
It has the tiny disadvantage that telling g++ about extra arguments (like -Wall or -std=c++0x is a bit more obtrusive).
I will advise you to use gedit with the embeded terminal plugin.It allows quick compiling through the embeded terminal.Perfect for quick testing.
You can use tcc as a C script engine.
$ cat tcctest.c
#!/usr/bin/tcc -run
#include <stdio.h>
int main(void) {
printf("Hello, tcc!\n");
return 0;
}
$ chmod u+x tcctest.c
$ ./tcctest.c
Hello, tcc!
http://www.compileonline.com
I found this Site more useful than ideone or codepad because it supports more languages than codepad and you can see the output of you code on an adjacent window you can also provide Standard Inputs and command line arguments and you can also access a file input.txt in your program.