以下内容均在Linux环境下。
一、库文件
-
包含大量函数(类、方法)的文件。不需要包含
main()
函数,因为它们不是可执行文件,而是供其他程序调用的代码库。 -
可以分为
静态链接库
和动态链接库
。 -
使用链接库可以带来以下几个好处:
- 减少内存占用:使用链接库可以避免同一函数或代码片段在不同的应用程序中重复出现,从而减少内存占用。
- 提高代码的可维护性:库更新时,只需要更新这个库的链接文件(a.或.so),不需要修改所有依赖这个库的源代码。
- 改善开发效率:可以专注于编写业务逻辑而不是处理底层细节。
- 提高代码的可重用性:使用链接库可以将程序与库的实现分离开来,从而提高程序的可维护性和可重用性。
Linux环境下,静态库通常后缀为
.a
,动态库为.so
二、静态链接库
- 编译时由编译器到指定目录寻找并且进行链接,可执行文件包含了该库中的所有代码和数据。
- 当系统中存在多个链接同一个静态库的可执行文件时,每个可执行文件中都存有一份静态库的指令和数据(见上一条)。
- 一旦程序中有模块更新,整个程序(库+其它)就必须重新链接后才能运行
1.文件准备
头文件:Math.h
库中函数较多,用头文件声明,与函数实现划分更清晰。
//函数声明
void sayHello();
void add(int a,int b);
库文件:Math.c