【C 语言】从代码示例入手(二十七)编译(一):gcc编译过程

《C 语言从代码示例入手》系列文章将带你开启 C 语言编程的探索之旅。通过大量简单且实用的代码示例,由浅入深地展现 C 语言的核心知识点,包括变量、数据类型、运算符、控制结构、函数等。每一个代码示例都有详细的解释和注释,让你能轻松理解代码的功能和运行原理,助你逐步掌握 C 语言的编程技巧,快速提升编程能力,为后续深入学习和开发打下坚实基础。

关于C语言的运行环境安装配置,请参看:【C 语言】从代码示例入手(零)

目录

一、链接库和编译过程

1、库的介绍

 2、库的分类

3、编译过程 

4、静态库

(1)概念理解

(2)静态库特点

5、动态库

(1)理解动态库

(2)动态库特点

二、gcc编译

1、gcc识别的文件扩展名

2、gcc、g++编译选项

3、gcc、g++编译选项

4、预处理

 5、链接汇编处理

6、二进制处理

7、程序运行

 8、多个源文件编译

三、gcc编译的过程总结


一、链接库和编译过程

gcc编译文件分为:动态链接库和静态链接库

1、库的介绍

库,是已经编写完成、成熟且可复用的代码集合。在实际编程中,每个程序都离不开众多基础底层库的支持,毕竟让每个人都从零开始编写代码既不现实也不高效,所以库的重要性不言而喻。

 

从本质上讲,库是一种可执行代码的二进制形态,能够被操作系统加载到内存中运行。

 2、库的分类

库主要分为两类:

  • 静态库,常见的文件扩展名在不同操作系统下有所不同,如在 Linux 系统中是.a,在 Windows 系统中是.lib
  • 动态库,其文件扩展名在 Linux 系统里为.so,在 Windows 系统中则是.dll

3、编译过程 

所谓静态、动态指的是链接,下面流程图展示了:将一个程序编译成可执行程序的步骤:

4、静态库

(1)概念理解

之所以成为【静态库】,是因为在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中。

因此对应的链接方式称为静态链接。

试想一下,静态库与汇编生成的目标文件一起链接为可执行文件,那么静态库必定跟.o文件格式相似。其实一个静态库可以简单看成是一组目标文件(.o/.obj文件)的集合,即很多目标文件经过压缩打包后形成的一个文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超越超

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值