Detailed explanation of gcc command usage under Linux system

Detailed explanation of gcc command usage under Linux system

1. Installation of gcc (taking Ubuntu as an example) sudo apt-get install build-essential

After installation, you can check the version through gcc --version.

Let's master its basic application in the process of compiling executable files through gcc.

Preparation: First, use vim to create a .c file in the current directory, for example 666.c

 $ vim 666.c

(The use of vim can be described in detail in another blog of mine, so I won’t go into details here)

Insert a code.

 #include <stdio.h>
main()
{
	int a,i;
	a=6;
	for(i=0;i<3;i++)
	{
		printf("%d",a);
	}
} 

(Every time we use cat to check)

1. Preprocessing

1. Preprocessing expands macro definitions (like #define), expands header files (like stdio.h), compiles conditions (like ifdef), expands all macros, and deletes all comments (like "//"). Preprocessing cpp precompiles source code and header files into a .i file. (Note that syntax is not checked at this time, so no error will be reported even if there are syntax errors.)

2. Command:

 $ gcc -E (source file name) -o (preprocessor file name)

or:

 $ gcc (source file name) > (preprocessor file name)

For example, according to 666.c, the preprocessing can be:

gcc -E 666.c -o 666.i

It can also be gcc 666.c > 666.i

2. Compilation

1. Compilation means checking whether the syntax is correct and compiling the preprocessed file into an assembly file.

2. Command:

$ gcc -S (source file) -o (assembly file)

For example, gcc -S 666.i -o 666.s

3. Compilation

1. Assembly means generating target files (binary files) from assembly files. Through assembly, text codes are converted into binary codes. (Binary code files have the suffix .o).

2. Command:

 $ gcc -c (assembly file) -o (object file)

For example, gcc -c 666.s -o 666.o

(Because it is a binary file, it will be garbled)

4. Links

1. Link to find dependent library files (static and dynamic) and link the target files into an executable program.

 $ gcc -c [target file] -o [executable program] -l [dynamic library name]

If there is no dynamic library (usually)

direct

 $ gcc -c [target file] -o [executable program] 

For example, gcc -c 666.o -o 666

At this time, an executable program 666 will be generated

If you want to execute this command:

 $ ./executable program

The ./ means in the current directory.

For example./666

(Note: In general, if we use the gcc executable file name, it will generate an a.out executable file by default. In this case, we can use ./a.out to execute it directly.)

This is the end of this article about the detailed usage of gcc command under Linux system. For more relevant Linux gcc command content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Specific use of Linux gcc command
  • How to install Linux online software gcc online
  • Installation process of GCC compiler on Linux

<<:  Detailed explanation of how to effectively store IP addresses in MySQL and how to convert between string IP and numerical values

>>:  CSS3 mouse hover transition zoom effect

Recommend

WeChat applet custom scroll-view example code

Mini Program Custom Scroll-View Scroll Bar Withou...

Specific method to delete mysql service

MySQL prompts the following error I went to "...

MySQL database monitoring software lepus usage problems and solutions

When using lepus3.7 to monitor the MySQL database...

Docker container log analysis

View container logs First, use docker run -it --r...

Mysql anonymous login cannot create a database problem solution

Frequently asked questions Access denied for user...

Descending Index in MySQL 8.0

Preface I believe everyone knows that indexes are...

In-depth explanation of special permissions SUID, SGID and SBIT in Linux

Preface For the permissions of files or directori...

Zabbix monitoring solution - the latest official version 4.4 [recommended]

Zabbix 2019/10/12 Chenxin refer to https://www.za...

MySQL transaction concepts and usage in-depth explanation

Table of contents The concept of affairs The stat...

Vue uses the video tag to implement video playback

This article shares the specific code of Vue usin...

MySQL select, insert, update batch operation statement code examples

In projects, batch operation statements are often...

Solution to forgetting the MYSQL database password under MAC

Quick solution for forgetting MYSQL database pass...