1、什么是库文件
库文件与源文件和头文件不同,库文件是二进制的,不是独立的程序,但能够向其他程序提供函数服务,是实现程序程序的模块化设计的重要组成部分,能够减少工程的编译时间,便于工程维护。库文件又分为静态库和动态库两种,分别有不同的制作方法和使用场景。Windows系统下库文件的命名格式为"xxx.a"或"xxx.dll",Linux系统下的库文件命名格式通常为"libxxx.a"或"libxxx.so"
windows :
静态库 : xxx.lib
动态库 :xxx.dll
Linux:
静态库:libxxx.a [xxx才是库名,lib是固定格式]
动态库:libxxx.so [xxx才是库名,lib是固定格式]
通常可以通过后缀名快速区分动态库和静态库。
2、静态库
将主程序和源文件生成的库文件一起编译成可执行文件,所以静态库生成的可执行程序体积较大,在执行的是时候不需要链接库文件,因为可执行文件中包含了所有静态库的内容,更新比较麻烦。
2.1 静态库的制作
1、只编译不链接;(.c--->.o)
2、生成静态库文件:(指令:ar )
2.2 静态库的使用
然后执行a.out即可。
2、动态库
将主程序和源文件生成的库文件链接生成可执行文件,所以静态库生成的可执行程序体积较小,在执行的时候需要连接库文件,不能直接执行,但是易于更新。
2.1 动态库的制作
-fPIC : 忽略文件位置
2.2 动态库的使用
1、编译生成可执行文件
2、执行可执行文件
此时文件会报错;需要我们配置文件,我们可以将自己的库文件放在系统下的/usr/lib 中
注:最后也可以临时改变环境变量解决错误 (export)[PATH];通过修改库文件的配置文件也可以解决执行文件错误问题。