打印
[应用相关]

关于GCC 的一些使用介绍

[复制链接]
1279|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一.使用 GCC 编译程序时,编译过程可以细分为四个阶段:
1. 预处理(Pre-Processing)
2. 编译(Compiling)
3. 汇编(Assembling)
4. 链接(Linking)
沙发
junpeng324|  楼主 | 2019-2-27 22:33 | 只看该作者
Gcc 通过后缀来区别输入文件的类别:
1. .c 后缀文件 : C 语言源代码文件
2. .h 后缀文件 : 头文件
3. .a 后缀文件 :有目标文件构成的库文件
4. .C .cc .cxx 后缀文件 : c++源码文件
5. .i 后缀文件 : 预处理过的 C 源代码文件
6. .ii 后缀文件 : 预处理过的 c++源代码文件
7. .o 后缀文件 : 编译后的目标文件
8. .s 后缀文件 : 汇编语言源代码文件
9. .S 后缀文件 : 经过预编译的汇编语言源代码文件

使用特权

评论回复
板凳
junpeng324|  楼主 | 2019-2-27 22:34 | 只看该作者
使用 vi 新建 hello.c 文件 编写程序后退出

使用特权

评论回复
地板
junpeng324|  楼主 | 2019-2-27 22:34 | 只看该作者
gcc hello.c -o hello 将 hello.c 文件进行编译

使用特权

评论回复
5
junpeng324|  楼主 | 2019-2-27 22:34 | 只看该作者
ll           查看文件属性

使用特权

评论回复
6
junpeng324|  楼主 | 2019-2-27 22:35 | 只看该作者
./hello      将hello可执行文件执行

使用特权

评论回复
7
junpeng324|  楼主 | 2019-2-27 22:35 | 只看该作者
四.Gcc 的基本使用方法: gcc [options][filenames]
  options: 编译器所需要的编译选项
  filename:需要编译的文件名

使用特权

评论回复
8
junpeng324|  楼主 | 2019-2-27 22:36 | 只看该作者
1.-o + outfilename: 确定执行文件的名称为outfilename  如果不指定outfilename  gcc 默认输出可执行文件a.out

使用特权

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

使用特权

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

使用特权

评论回复
11
junpeng324|  楼主 | 2019-2-27 22:37 | 只看该作者
加入-g时的hello可执行文件的大小:

使用特权

评论回复
12
junpeng324|  楼主 | 2019-2-27 22:37 | 只看该作者
-O (大写) 对整个程序进行优化编译,链接使可执行的文件执行效率得到提高。

使用特权

评论回复
13
junpeng324|  楼主 | 2019-2-27 22:38 | 只看该作者
-O2  比-O更好的优化编译,过程不会比较慢。

使用特权

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

使用特权

评论回复
15
junpeng324|  楼主 | 2019-2-27 22:38 | 只看该作者
-L libpath: 将libpath所指出的目录加入到库文件的目录列表中。

使用特权

评论回复
16
junpeng324|  楼主 | 2019-2-27 22:39 | 只看该作者
-static : 静态链接库文件
库有静态与动态两种,动态通常用.so为后缀,静态用.a为后缀。动态链接要比静态链接节约内存空间。
  例: gcc -static hello.c -o hello

使用特权

评论回复
17
junpeng324|  楼主 | 2019-2-27 22:39 | 只看该作者
-Wall 生成所有警告信息,-w 不生成警告信息

使用特权

评论回复
18
junpeng324|  楼主 | 2019-2-27 22:39 | 只看该作者
-D 相当于#define   例 gcc  -DYES  hello.c -o hello  

使用特权

评论回复
19
八层楼| | 2019-3-11 12:54 | 只看该作者
GCC是keil的工具吗

使用特权

评论回复
20
观海| | 2019-3-11 12:58 | 只看该作者
非常感谢楼主分享

使用特权

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

本版积分规则

37

主题

1130

帖子

8

粉丝