gcc-使用入门


title: gcc 使用入门
tags: [gcc]
categories:

  • gcc
    date: 2021-05-13 20:16:20

gcc 使用入门

GCC是GUN Compiler Collection 的简称,除了编译程序之外,还包含其他的相关工具。

程序的编译过程

对于GUN编译器来说,程序的编译要经过预处理、编译、汇编、连接四个阶段。

预处理

输入c语言源文件 *.c ,输出中间文件 *.i ,该阶段主要处理源文件中的预处理指令

gcc -E test.c -o test.i
编译阶段

输入中间文件 *.i ,输出汇编语言文件 *.s

gcc -S test.i -o test.s
汇编阶段

输入汇编语言源 *.s ,输出机器语言文件 *.o

gcc -c test.s -o test.o
连接阶段

讲输入的机器代码文件 *.o 与其他的机器代码文件和库文件汇集成一个可执行的二进制代码文件。

gcc test.o -o test
常用命令编译选项
无选项编译链接

用法:gcc test.c
作用:将 test.c 预处理、汇编、编译并链接形成可执行文件。这里未指定输出文件,默认
输出为 a.out。

选项 -o

用法:gcc test.c -o test
作用:将 test.c 预处理、汇编、编译并链接形成可执行文件 test。-o 选项用来指定输出文
件的文件名。

选项 -E

用法:gcc -E test.c -o test.i
作用:将 test.c 预处理输出 test.i 文件。

选项 -S

用法:gcc -S test.i
作用:将预处理输出文件 test.i 汇编成 test.s 文件。

选项 -c

用法:gcc -c test.s
作用:将汇编输出文件 test.s 编译输出 test.o 文件。

无选项链接

用法:gcc test.o -o test
作用:将编译输出文件 test.o 链接成最终可执行文件 test。

选项-O

用法:gcc -O1 test.c -o test
作用:使用编译优化级别 1 编译程序。级别为 1~3,级别越大优化效果越好,但编译时间越
长。

多源文件的编译方法

如果有多个源文件,基本上有两种编译方法:
[假设有两个源文件为 test.c 和 testfun.c]

  1. 多个文件一起编译
    用法:
gcc testfun.c test.c -o test

作用:将 testfun.c 和 test.c 分别编译后链接成 test 可执行文件。
2. 分别编译各个源文件,之后对编译后输出的目标文件链接。
用法:

gcc -c testfun.c //将 testfun.c 编译成 testfun.o
gcc -c test.c //将 test.c 编译成 test.o
gcc -o testfun.o test.o -o test //将 testfun.o 和 test.o 链接成 test

以上两种方法相比较,第一中方法编译时需要所有文件重新编译,而第二种方法可以只
重新编译修改的文件,未修改的文件不用重新编译。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值