To compile a C or C++ program on any Linux distro such as Ubuntu, Red Hat, Fedora, Debian and other Linux distro you need to install:
- GNU C and C++ compiler collection
- Development tools
- Development libraries
- IDE or text editor to write programs
Step #1: Install C/C++ compiler and related tools
If you are using Fedora, Red Hat, CentOS, or Scientific Linux, use the following yum command to install GNU c/c++ compiler:
# yum groupinstall 'Development Tools'
If you are using Debian or Ubuntu Linux, type the following apt-get command to install GNU c/c++ compiler:
$ sudo apt-get update
$ sudo apt-get install build-essential manpages-dev
Step #2: Verify installation
Type the following command to display the version number and location of the compiler on Linux:
$ whereis gcc
$ which gcc
$ gcc --version
Sample outputs:
How to Compile and Run C/C++ program on Linux
Create a file called demo.c using a text editor such as vi, emacs or joe:
#include<stdio.h> /* demo.c: My first C program on a Linux */ int main(void) { printf("Hello! This is a test prgoram.\n"); return 0; } |
How do I compile the program on Linux?
Use any one of the following syntax to compile the program called demo.c:
cc program-source-code.c -o executable-file-name |
OR
gcc program-source-code.c -o executable-file-name |
OR
## assuming that executable-file-name.c exists ## make executable-file-name |
In this example, compile demo.c, enter:
cc demo.c -o demo |
OR
## assuming demo.c exists in the current directory ## make demo |
If there is no error in your code or C program then the compiler will successfully create an executable file called demo in the current directory, otherwise you need fix the code. To verify this, type:
$ ls -l demo*
How do I run or execute the program called demo on Linux?
Simply type the the program name:
$ ./demo
OR
$ /path/to/demo
Samples session:
Compiling and running a simple C++ program
Create a program called demo2.C as follows:
#include "iostream" // demo2.C - Sample C++ program int main(void) { std::cout << "Hello! This is a C++ program.\n"; return 0; } |
To compile this program, enter:
g++ demo2.C -o demo2 ## or use the following syntax ## make demo2 |
To run this program, type:
./demo2 |
How do I generate symbolic information for gdb and warning messages?
The syntax is as follows C compiler:
cc -g -Wall input.c -o executable
The syntax is as follows C++ compiler:
g++ -g -Wall input.C -o executable
How do I generate optimized code on a Linux machine?
The syntax is as follows C compiler:
cc -O input.c -o executable
The syntax is as follows C++ compiler:
g++ -O -Wall input.C -o executable
How do I compile a C program that uses math functions?
The syntax is as follows when need pass the -lm option with gcc to link with the math libraries:
cc myth1.c -o executable -lm
How do I compile a C++ program that uses Xlib graphics functions?
The syntax is as follows when need pass the -lX11 option with gcc to link with the Xlib libraries:
g++ fireworks.C -o executable -lX11
How do I compile a program with multiple source files?
The syntax is as follows if the source code is in several files (such as light.c, sky.c, fireworks.c):
cc light.c sky.c fireworks.c -o executable
C++ syntax is as follows if the source code is in several files:
g++ ac.C bc.C file3.C -o my-program-name
See gcc(1) Linux and Unix man page for more information.
- Ubuntu Linux Install GNU GCC Compiler and Development Environment
- Debian Linux Install GNU GCC Compiler and Development Environment
- CentOS / RHEL 7: Install GCC (C and C++ Compiler) and Development Tools
- Download and Install C, C++ Compiler on Red Hat Enterprise Linux 5 (RHEL)
- Mac OS X: Install GCC Compiler with Xcode
- Where is My Linux GNU C or GCC Compilers Are Installed?
- HowTo: Compile And Run a C/C++ Code In Linux
- RHEL / CentOS Linux Install Core Development Tools Automake, Gcc (C/C++), Perl, Python & Debuggers
- HowTo Compiling C Program And Creating Executable File Under a Linux / UNIX / *BSD
- How To Install ncurses Library on a Linux
- Linux Find Out What Compilers Are Installed or Available On The System
- Linux Find Out GNU gcc Compiler Version Used To Compile Running Kernel
- Howto see output of C program in Linux or UNIX
thank you so much ur solution gave a relief…
it made my gcc command to work
Very nice article…..
In Fig. 01, you did “whereis†twice. Shouldn’t it be “which†the second time? Thanks for the tut though. Big fan!
Another mistake, please change the following comment:
## assuming that executable-file-name.c exists ##
to
## assuming that program-source-code.c exists in the current directory ##
how to compile a program that use math functions and other things?
For the sake of supplying an example, let’s say you want to use the cosine function. This is supplied in the Linux math library. The cosine function is called ‘cos()’. Similarly, the sine function is called ‘sin()’.
First, to find information about how to use them, type “man cos” in a terminal session. This gives you the manual page for the cosine function. The output from ‘man’ may vary for your system, but it likely tells you three things: 1. first, include the math.h header, 2. cos() takes a ‘double’ as its argument and it returns a double as its output, 3. to build your program, tell the C compiler to include the math library (-lm).
Here’s a sample program that does all of this:
Love it!
Thank you. I have a trouble in doing step 1 and 2. But they are fixed.
thank u ,
need pdf of the commands guide to access the c/c++/java.
to compile and run a c++ program in ubuntu follow these simple steps:
1 open terminal window.
2 type “gedit” .
3 A gedit window will appear whereyou can write your program.
4 save your program as “filename.cpp” on desktop, “.cpp” is compulsory.
5 open terminal again and type “cd Desktop”.
6 In second line type “g++ filename.cpp”.
7 Type “./a.out”.
NOW YOUR WILL RUN.
very nice to your step.
thanks
Thanks! This article really helped me to find the GNU compiler in a Linux Operating System and showed me how to compile a C program.
dear sir,
what is the procedure to run .cpp program in linux distro debian 5 ?
thank you
hello.
just about to get around to learning c along with teaching my sons it. i had no idea where to start, the first page i checked is a bumper bonanza.
thanks for sharing the information.
Thanks Bro.
Very helpful. Thank you…
Really helpful. Many Thanks
# yum groupinstall ‘Development Tools’
im using these command but not install the gcc ….
[samrat@localhost ~]$
[samrat@localhost ~]$ # yum groupinstall ‘Development Tools’
[samrat@localhost ~]$
First, use sudo or su to become the root and type:
OR
so thank
Life saver for new Linux/C++ developers. Thank you!!!!
thank you so much for your guidance
Thanky you very much for this description!
Thank you!
Hello Everyone,
I am Learning C++ in Linux and I am Getting an ERROR for the command or To compile this program as follow:
# g++ demo2.c -o demo2
demo2.c:3: error: expected unqualified-id before â/â token
Please give Solution for this.
Thanks in Advance
You have a syntax error on line 3 of your file: demo2.c
Make sure you have typed it in correctly.
You need to look carefully at the contents of your file “demo2.c”. From the error message you provided, it looks like there is something wrong on line 3 or otherwise near line 3. Look for this “â/â” charactger and remove it. Then retry the g++ command. Good luck to you!
Thanking you, awesome information
Very useful tutorial, thanks!
I have created a c program in which i have to display the contents of file but each time when i run the program it display the error that file can’t be opened the no such file exits.
i don’t know how to give the path of that text file in my c program i have to run this program on linux. please someone help me as soon as possible.
Regards
thank you
Thank you very much for this page Cyberciti’s team
My age is above 30 and i work a waiter .I learned very thing about computer from the INTERNET. I started using Linux from 2013 and this is the only website i found tutorials of g++ explained from the basics .
i did the same for c program
steps upto gcc progname.c -o prgnam work fine
but when i type ./executablefilename error with Bsh: ./hello permission denied appears.
i am not getting why is this happening.
I installed ubuntu alongside Windows two days ago and using ubuntu for programming for the first time.
thanks, this use full for me ……………..
what is diffrince b/w window and linux related to c .,, like if we creat a program in turbo c ,like if stetment.. are some deffrence to between both li & win////
Thank you so much. I have been tryin to find the place to understand how to compile C++ file in Linux. Yours is the descriptive yet easy to read and follow. Thank so much!!!
I am Learning C++ in Linux and I am Getting an ERROR for the command or To compile this program as follow:
# g++ demo2.c -o demo2
when i want to display the output. it prints the printf content, but when i use scanner, i dont get an option to input data. Help??