GCC编译程序

GCC(GNU Compiler Collection)是linux下最主要的一种编译工具。

GCC编译格式:
gcc [选项] 源文件名 [选项] 目标文件名
采用默认得方式编译源文件,系统会生成a.out可执行文件
在这里插入图片描述
采用显式编译成目标文件,在编译成可执行文件
gcc -c hello.c #生成hello.o在这里插入图片描述
gcc hello.o #生成a.out在这里插入图片描述
gcc -o hello hello.o #生成hello在这里插入图片描述
直接编译成可执行文件
gcc -o hello hello.c
在这里插入图片描述
编译完后可执行的程序均为绿色字体,执行格式:
./程序的名称

例如:
./a.out或./hello在这里插入图片描述
GCC编译流程

编译器的输入是程序的源文件,输出是可执行得文件或者可分发得二进制代码,中间过程便是编译器要完成得工作。其程序得编译流程为:
(1)预处理(预编译)
本阶段是针对头文件(.h)进行编译,即将这些头文件编译到当前源文件中,预处理常用得选项是-E,它的作用是告诉编译器,当预处理结束后停止编译。
预处理的输入是.c文件,输出是.i文件
命令:gcc -E 源文件 -o 目标文件
gcc -E hello.c -o hello.i
(2)编译
本阶段是对代码得规范性,语法得正确性进行检查,并编译成汇编语言。编译常用的选项是-S,它的作用是告诉编译器,当编译结束时,停止编译。
编译的输入是.i文件,输出是.s文件
命令:gcc -S 源文件 -o 目标文件
gcc -S hello.i -o hello.s
gcc -S hello.c -o hello.s
(3)汇编
本阶段是将汇编语言翻译成目标文件,汇编常用的选项是-c,它的作用是告诉编译器,当汇编阶段结束时停止编译
汇编的输入是.s文件,输出是.o文件
命令:gcc -c 源文件 -o 目标文件
gcc -c hello.s -o hello.o
(4)链接
本阶段是将所有的目标文件以及相应的库文件编译成可执行文件,链接并不需要选项,只需要制定生成的可执行文件名。
链接的输入是.o文件,输出是可执行文件
命令:gcc 源文件 -o 目标文件
gcc hello.o -o hello

常用的编译选项:
-o 后边跟目标对象的名称
-c 只编译不链接,后边跟源文件
-g 开启gdb调试,gdb是一个调试工具

-Wall 提示所有的警告信息
-Werror 将所有的警告当作错误处理
-static 静态链接库
-llibrary 链接名为library得库文件
-I dir 用于添加头文件查找目录(Include)
-L dir 用于添加库文件查找目录(Library)
-g 添加调试信息,生成的目标文件的大小会增大

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值