linux下编程学习--- 静态库和动态库的编译

 

学习linux下c很长一段对动态库和静态库的编译和使用总是透着雾水,今天看了一本书《Linux程序设计第2版》,总算弄清楚了,所谓库文件是预先编译好的函数集合,函数库一般分为静态和共享两种格式。

静态库:静态库也叫档案(archive),他们的名字都按管理 *.a 命名,其实说白了,所谓的静态库也就是被归档的
          二进制目标代码文件,当要使用时,就用include 来包含该库的头文件即可,当然如果不是标准库,要指名路径,用”-l“ 指名,自己建立静态库,用归档命令”ar“ 即可,例如”ar crv  test.a  test1.o test2.o“

动态库:动态库也叫共享库,系统存放的位置和静态库是一个地方,不通的是后缀名不一样,以”.so“结尾,
               如果一个程序使用动态库,则该程序本身不包含调用的函数代码,只包含调用的线索,只是在程序需要调
              用时才去调用动态库。这也就是所谓”动态“的含义吧。
  

你可能感兴趣的:(linux下编程学习--- 静态库和动态库的编译)