gcc编译笔记整理

本文详细介绍了GCC编译器的工作流程,包括预处理、编译、汇编和链接等步骤,列举了常用编译选项,并展示了如何编译多个源文件,以及制作和使用动态库与静态库的方法。还介绍了几个实用的命令行选项用于检查和管理编译过程。
摘要由CSDN通过智能技术生成

1、gcc的编译过程

预处理(.c/.cpp) ->编译(.i) ->汇编(.s) -> 链接(*.o)->App

2、一些常用的编译选项

常用选项描述
-E预处理,开发过程中想快速确定某个宏可以使用“-E -dM”
-c把预处理、编译、汇编都做了,但是不链接
-o指定输出文件
-I指定头文件目录
-L指定链接时库文件目录
-l指定链接哪个库文件

3、编译多个文件

(1) 一起编译、链接

gcc -o test main.c sub.c

(2) 单独编译、链接

gcc -c -o main.o main.c
gcc -c -o sub.o sub.c
gcc -o test main.o sub.o

(4)制作、使用动态库

gcc -c -o main.o main.c
gcc -c -o sub.o sub.c
gcc -shared -o libsub.so sub.o(这里可以使用多个.o生成动态库 sub1.o sub2.o)
gcc -o test main.o -lsub -L /libsub.so(libsub.so所在目录)

(5)制作、使用静态库

gcc -c -o main.o main.c
gcc -c -o sub.o sub.c
ar crs libsub.a sub.o
gcc -o test main.o libsub.a

(6) 一些很有用的选项

gcc -E main.c // 查看预处理结果,比如头文件是哪个
gcc -E -dM main.c > 1.txt // 把所有的宏展开,存在 1.txt 里
gcc -Wp,-MD,abc.dep -c -o main.o main.c // 生成依赖文件 abc.dep,后面 Makefile 会用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值