If you are using Linux or UNIX, then check whether GCC is installed on your system by entering the following command from the command line −
$ gcc -v
If you have GNU compiler installed on your machine, then it should print a message.If GCC is not installed, then you will have to install it yourself using the detailed instructions available at
Install GCC
The following linux command will install gcc compiler on Ubuntu 18.04 Bionic Beaver( Latest version is 20.04 Focal Fossa) .Open up terminal and enter:
$sudo apt-get install gcc
Install build-essential
Another way to install gcc compiler is to install it as part of build-essential package. build-essential package will also install additional libraries as well as g++ compiler. In most cases or if unsure this is exactly what you need:
$sudo apt-get install build-essential
Check GCC version
Confirm your installation by checking for GCC version:
$ gcc --version
Writing first program:
Following is first program in C
/* my first program */
#include <stdio.h>
int main(void)
{
printf("Hello World");
return 0;
}
Output:Hello World
Let us analyze the program line by line.
Line 0: [ /*my
first program / ]
In a C program, multi line comments
are included between / * */. Comments are ingored by the
compiler.Comments improve the readability and helps in
documentation.It is a good practise to add commands at various
sections of the program.Single line commands can also be added with //.
Line 1: [ #include <stdio.h> ]
In a C program, all lines that start with # are
processed by preprocessor
which is a program invoked by the compiler. In a very basic term,
preprocessor
takes a C program and produces another C program. The produced
program has no lines starting with #, all such lines are processed by
the preprocessor. In the above example, preprocessor copies the
preprocessed code of stdio.h to our file. The .h files are called
header files in C. These header files generally contain declaration
of functions. We need stdio.h for the function printf() used in the
program.
Line 2 [ int main(void) ] There must to be starting point from where execution of compiled C program begins. In C, the execution typically begins with first line of main(). The void written in brackets indicates that the main doesn’t take any parameter . main() can be written to take parameters also. We will be covering that in future posts.
The int written before main indicates return type of main(). The value returned by main indicates status of program termination.
The int written before main indicates return type of main(). The value returned by main indicates status of program termination.
Line 3 and 6: [ { and } ] In C
language, a pair of curly brackets define a scope and mainly used in
functions and control statements like if, else, loops. All functions
must start and end with curly brackets.
Line 4 [ printf(“Hello
world”); ] printf()
is a standard library function to print something on standard output.
The semicolon at the end of printf indicates line termination. In C,
semicolon is always used to indicate end of statement.
3)Compile and
Execute C Program
- Open a text editor and add the above-mentioned
code.(vi,emac,gedit)
- Save the file as hello.c
- Open a command prompt and go to the directory where you have
saved the file.
- Type gcc hello.c and press enter to compile your code.
- If there are no errors in your code, the command prompt will
take you to the next line and would generate a.out executable
file.
- Now, type ./a.out to execute your program.
- You will see the output "Hello World"
printed on the screen.
$ ./a.out
Hello World
You can also specify an out file with -o option
$ gcc -o hello hello.c
Hello World
You can also specify an out file with -o option
$ gcc -o hello hello.c
$ ./hello
Hello World
Hello World
Make sure the gcc compiler is in your path and that you are running it in the directory containing the source file hello.c.
GCC Compiler Options
1. Specify the Output Executable Name
Use option -o, as shown below, to specify the output file name for the executable.
$gcc hello.c -o hello
The command above would produce an output file with name ‘hello’.
2. Enable all warnings set through -Wall option
This option enables all the warnings in GCC.
$gcc -Wall hello.c
3.Produce only the preprocessor output with -E option
The output of preprocessing stage can be produced using the -E option.
The output of preprocessing stage can be produced using the -E option.
$gcc -E hello.c > hello.i
4. Produce only the assembly code using -S option
The assembly level output can be produced using the -S option.
4. Produce only the assembly code using -S option
The assembly level output can be produced using the -S option.
$gcc -S hello.c > hello.s
5. Produce only the compiled code using the -C option
To produce only the compiled code (without any linking), use the -C option.
$gcc -C hello.c
6. Produce all the intermediate files using -save-temps function
For example :
The command above would produce a file hello.o that would contain machine level code or the compiled code.
6. Produce all the intermediate files using -save-temps function
The option -save-temps can do all the work done in example 4,5 and 6 above. Through this option, output at all the stages of compilation is stored in the current directory. Please note that this option produces the executable also.
For example :
$gcc -save-temps hello.c
$ls
a.out hello.c hello.i hello.o hello.s
So we see that all the intermediate files as well as the final executable was produced in the output.
7. Link with shared libraries using -l option
The option -l can be used to link with shared libraries.
For example:
gcc -Wall hello.c -o main -l libCPPfile
The gcc command mentioned above links the code hello.c with the shared library libCPPfile. So to produce the final executable ‘hello’.
9. Print all the executed commands using -v option
The option -v can be used to provide verbose information on all the steps gcc takes while compiling a source file.
For example :
$gcc -Wall -v hello.c -o hello
10. Provide gcc options through a file using @ option
The options to gcc can also be provided through a file. This can be done using the @ option followed by the file name containing the options. More than one options are separated by a white space.
Here is an example :
$cat opt_file
-Wall -o hello
The opt_file contains the options.
Now compile the code by providing opt_file along with option @
The opt_file contains the options.
Now compile the code by providing opt_file along with option @
$gcc main.c @opt_file
Comments
Post a Comment