C项目的编译

最近需要跑一个C的项目,C项目编译过程:

编译过程

预处理——编译——汇编——链接

只编译不链接,生成.o

gcc -c main.c

进行链接

gcc -o main main.o

多个文件编译

一个.c文件中用到了其他.c的内容

编译时需要注意顺序,一般先把多个.c文件编译为.o文件,然后再gcc -o组合起来。

image-20240729190253623

但是文件多的时候,就需要makefile了。

找不到头文件的目录

gcc -I指定

静态链接库

把一堆.o文件组织到一起形成.a文件

命名:lib+库名+.a

ar命令生成静态链接库

使用静态链接库

image-20240729191652598

链接时把库加后面

动态链接库

Windows:.dll文件;linux:.so文件

image-20240729192534567

Makefile

当.c文件特别多时,gcc编译显得吃力。makefile可以帮忙。

Cmake

当makefile也过于复杂时,引出cmake工具,帮我们生成makefile。


C项目的编译
http://example.com/2024/07/29/C/gcc/
作者
sxswldy
发布于
2024年7月29日
许可协议