学习linux下c很长一段对动态库和静态库的编译和使用总是透着雾水,今天看了一本书《Linux程序设计第2版》,总算弄清楚了,所谓库文件是预先编译好的函数集合,函数库一般分为静态和共享两种格式。
静态库:静态库也叫档案(archive),他们的名字都按管理 *.a 命名,其实说白了,所谓的静态库也就是被归档的
二进制目标代码文件,当要使用时,就用include 来包含该库的头文件即可,当然如果不是标准库,要指名路径,用”-l“ 指名,自己建立静态库,用归档命令”ar“ 即可,例如”ar crv test.a test1.o test2.o“
动态库:动态库也叫共享库,系统存放的位置和静态库是一个地方,不通的是后缀名不一样,以”.so“结尾,
如果一个程序使用动态库,则该程序本身不包含调用的函数代码,只包含调用的线索,只是在程序需要调
用时才去调用动态库。这也就是所谓”动态“的含义吧。
本文解析了Linux环境下C语言中静态库与动态库的区别及使用方式。静态库即为归档的二进制目标代码文件,通过指定路径并使用-l参数引入;而动态库则是在程序运行时动态加载使用的共享库,其调用过程更为灵活。

被折叠的 条评论
为什么被折叠?



