动静态库里面包含的是源文件通过汇编阶段生成的后缀为.o的可重定位目标文件。我们在使用C语言,包含一个stdio.h头文件就可以使用scanf方法,其实都是系统调用了相应的头文件和库,库里面有开发者已经写好各种方法。也就是说我们在使用C语言时,系统里已经存在了各种各样的库了,我们只需要根据自己的需求通过向系统表明要使用那些库了的方法,包含相应的库对应的头文件即可。
静态库:
程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库。
库名规则:libxxx.a
制作一个静态库:
系统在编译源文件时会自动在/usr/include路径下搜寻该源文件在链接过程中所需的库的头文件,在/lib64路径下搜寻所需的库文件。
动态库:
程序在运行的时候才去链接动态库的代码,多个程序共享使用库的代码。
库名规则:libxxx.so
制作一个动态库:
动态库执行时要被加载器加载到内存,系统会默认在/lib64路径下找需要被加载的动态库文件,因此要保证在/lib64路径下有要被加载的动态库名!