首页 >系统教程 >LINUX >基于命令行输入的c/c++编译器运行过程

基于命令行输入的c/c++编译器运行过程

WBOY
WBOY原创
2024-06-01 21:57:27969浏览

目录

第一:linuxgcc包含的c/c 编译器gcc、cc、c 、g

第二:gcc特征

第三:gcc的运行过程

第四:gcc选项

第五:gcc所遵守的部份约定规则

第一:linuxgcc包含的c/c 编译器gcc、cc、c 、g

其中gcc和cc是一样的,c 和g 是一样的,通常c语言程序就用gcc编译linux怎么用gcc编译linux怎么用gcc编译,c 程序就用g 编译。

第二:gcc特征

gcc是一个可移植的编译器,支持多种硬件平台。比如ARM、X86等等。

编译用英语怎么说_编译用英语_linux怎么用gcc编译

gcc除了是个本地编译器,它能够跨平台交叉编译。所谓的本地编译器,是指编译下来的程序只还能在本地环境进行运行。而gcc编译下来的程序才能在其他平台进行运行。

gcc有多种语言后端,用于解析不同的语言另外gcc是按模块化设计的linux vi命令,可以加入新语言和新CPU构架的支持。gcc是自由软件。任何人都可以使用或修改这个软件。

第三:gcc的运行过程

(1)在命令行输入:gcctest.c

这样会默认编译出一个名为a.out的程序,

再在命令行输入:./a.out

就可以运行程序。

(2)假如在命令行输入:gcctest.c-otest

这样将编译出一个名为test的程序

再在命令行输入:./test

就可以运行程序。

注:其中-o参数拿来指定生成程序的名子

(3)分步执行linux操作系统版本,更具体形象

其中包含4个过程:

1.预处理

本质会进行4个操作(包括头文件的展开、去掉注释、宏替换、条件编译)、

具体操作:命令行输入:gcc-Etest.c-otest.i

这句命令意思是:走完预处理第一步都会停出来,将形成的临时内容储存在test.i文件中

linux怎么用gcc编译_编译用英语_编译用英语怎么说

2.编译

本质就是把c语言弄成汇编语言

具体操作:命令行输入:gcc-Stest.i-otest.s

这句命令意思是:走完编译第二步都会停出来,将形成的临时内容储存在test.s文件中

3.汇编

本质就是把汇编语言弄成目标二补码文件(不可执行)

具体操作:命令行输入:gcc-ctest.s-otest.o

这句命令意思是:走完汇编第三步都会停出来,将形成的临时内容储存在test.o文件中

4.链接

linux怎么用gcc编译_编译用英语_编译用英语怎么说

本质就是引入我们在代码中使用的第三方库生成可执行文件或库文件

(第三方库由编译器和文件后缀共同决定)

第四:gcc选项

-E只进行预处理操作

-S编译到汇编停止(不进行汇编,只完成预处理和编译)

-c进行汇编操作(编译到汇编代码)

-O[0,1,2,3]

优化程序(默认为2级优化,0不优化,3优化级别最高)

-static对生成的文件采用静态链接

编译用英语怎么说_linux怎么用gcc编译_编译用英语

-shared尽量使用动态库

-Idir

将dir目录加入搜索头文件的目录路径

-Ldir

将dir目录加入搜索库的目录路径

-llib

联接lib库

-Wall使gcc对源文件的代码有问题的地方发出警告信息

-W不发出警告信息

-g在目标文件中生成调试信息,便于gdb之类的调试程序调试

以上是基于命令行输入的c/c++编译器运行过程的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn