打印
[应用相关]

关于GCC 编译器

[复制链接]
943|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
使用GCC编译程序时,编译过程可以细分为四个阶段:
1. 预处理(Pre-Processing
2. 编译(Compiling
3. 汇编(Assembling
4.  链接(Linking

沙发
hanzhen654|  楼主 | 2019-3-9 14:09 | 只看该作者
Gcc通过后缀来区别输入文件的类别:
1.   .c后缀文件 : C语言源代码文件
2.   .h后缀文件 : 头文件
3.   .a后缀文件 :有目标文件构成的库文件
4.   .C  .cc  .cxx 后缀文件 : c++源码文件
5.   .i 后缀文件 : 预处理过的C源代码文件
6.   .ii 后缀文件 : 预处理过的c++源代码文件
7.   .o 后缀文件 : 编译后的目标文件
8.   .s 后缀文件 : 汇编语言源代码文件
   .S 后缀文件 : 经过预编译的汇编语言源代码文件

使用特权

评论回复
板凳
hanzhen654|  楼主 | 2019-3-9 14:09 | 只看该作者
使用vi 新建hello.c文件 编写程序后退出

使用特权

评论回复
地板
hanzhen654|  楼主 | 2019-3-9 14:09 | 只看该作者
gcc  hello.c  -o  hello    将hello.c 文件进行编译

使用特权

评论回复
5
hanzhen654|  楼主 | 2019-3-9 16:02 | 只看该作者
ll           查看文件属性

使用特权

评论回复
6
hanzhen654|  楼主 | 2019-3-9 16:02 | 只看该作者
./hello      将hello可执行文件执行

使用特权

评论回复
7
hanzhen654|  楼主 | 2019-3-9 16:03 | 只看该作者
1.-o + outfilename: 确定执行文件的名称为outfilename  如果不指定outfilename  gcc 默认输出可执行文件a.out

使用特权

评论回复
8
hanzhen654|  楼主 | 2019-3-9 16:03 | 只看该作者
2.-c 只编译,不连接成功为可执行文件,编译器只输出源代码生成的.o为后缀的文件

使用特权

评论回复
9
hanzhen654|  楼主 | 2019-3-9 16:04 | 只看该作者
3.-g 产生调试工具所必须的符号信息,要想对编译出的程序进行调试,就必须加入这个选项,加-g后输出程序变大。
未加入-g时,hello可执行文件的大小:

使用特权

评论回复
10
hanzhen654|  楼主 | 2019-3-9 16:05 | 只看该作者
加入-g时的hello可执行文件的大小:

使用特权

评论回复
11
hanzhen654|  楼主 | 2019-3-9 16:05 | 只看该作者
4.-O (大写) 对整个程序进行优化编译,链接使可执行的文件执行效率得到提高。

使用特权

评论回复
12
hanzhen654|  楼主 | 2019-3-9 16:05 | 只看该作者
5.-O2  比-O更好的优化编译,过程不会比较慢。

使用特权

评论回复
13
hanzhen654|  楼主 | 2019-3-9 16:06 | 只看该作者
6.-I +filepath :将filepath所指出的目录加到程序头文件目录列表中。
  例: gcc  -I/home/lm/inc hello.c -o hello  (在/home/lm 目录下新建inc目录)

使用特权

评论回复
14
hanzhen654|  楼主 | 2019-3-9 16:06 | 只看该作者
7.-L libpath: 将libpath所指出的目录加入到库文件的目录列表中。

使用特权

评论回复
15
hanzhen654|  楼主 | 2019-3-9 16:07 | 只看该作者
8.-static : 静态链接库文件
库有静态与动态两种,动态通常用.so为后缀,静态用.a为后缀。动态链接要比静态链接节约内存空间。

使用特权

评论回复
16
hanzhen654|  楼主 | 2019-3-9 16:09 | 只看该作者
8.-static : 静态链接库文件
库有静态与动态两种,动态通常用.so为后缀,静态用.a为后缀。动态链接要比静态链接节约内存空间。

使用特权

评论回复
17
hanzhen654|  楼主 | 2019-3-10 22:10 | 只看该作者
-Wall 生成所有警告信息,-w 不生成警告信息
-D 相当于#define   例 gcc  -DYES  hello.c -o hello

使用特权

评论回复
18
renzheshengui| | 2019-4-1 12:18 | 只看该作者
非常感谢楼主分享

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

73

主题

1766

帖子

2

粉丝