栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

小知识点~ gcc/g++ 使用

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

小知识点~ gcc/g++ 使用

小知识点~ Linux 下 gcc/g++ 使用

1、精简2、复杂

2.1 预处理2.2 编译2.3 汇编2.4 连接2.5 案例 3、指令总结
注:以下内容前提是目标系统已安装gcc/g++,若不确定是否安装,可通过gcc -v 语句进行查看!

1、精简

在Linux系统中,gcc/g++ 是用于c或cpp文件进行编译的工具。最简单的编译命令格式为:

gcc test.c -o test

其中 test.c 为目标文件,test 为编译后的执行文件。

案例如下

2、复杂

一般完整的编译过程需要经历以下几个阶段:

预处理(进行宏替换)编译(生成汇编)汇编(生成机器可识别代码)连接(生成可执行文件或库文件) 2.1 预处理

预处理功能主要包括宏定义,文件包含,条件编译,去注释等。

其指令格式为

gcc –E test.c –o test.i

其中,选项“-E”,该选项的作用是让 gcc 在预处理结束后停止编译过程。
选项“-o”是指目标文件,“.i”文件为已经过预处理的C原始程序。

2.2 编译

在这个阶段中,gcc 首先要检查代码的规范性、是否有语法错误等, 以确定代码的实际要做的工作,在检查无误后,gcc 把代码翻译成汇编语言。

其指令格式为

gcc –S test.i –o test.s

其中,用户可以使用“-S”选项来进行查看, 该选项只进行编译而不进行汇编,生成汇编代码。

2.3 汇编

该部分主要功能是生成机器可识别代码!

其指令格式为

gcc –c test.s –o test.o

其中,可使用选项“-c”就可看到汇编代码已转化为“.o”的二进制目标代码。

2.4 连接

该部分主要功能是 生成可执行文件或库文件!

指令格式为

gcc test.o –o test

即在前面步骤成功进行编译之后,就进入了链接阶段。

2.5 案例

针对1中的程序,按上述步骤进行编译,具体过程如下


注意:以上步骤中要注意大小写,因为gcc中的选项中会有大小写要求!!否则会报错,如下

3、指令总结

gcc选项

-E //只激活预处理,这个不生成文件,你需要把它重定向到一个输出文件里面
-S //编译到汇编语言不进行汇编和链接
-c //编译到目标代码
-o //文件输出到 文件
-static //此选项对生成的文件采用静态链接
-g //生成调试信息。GNU 调试器可利用该信息。
-shared //此选项将尽量使用动态库,所以生成文件比较小,但是需要系统有动态库.
-O0
-O1
-O2
-O3 //编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-w //不生成任何警告信息。
-Wall //生成所有警告信息。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/751201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号