练习静态库/动态库之前,先创建三个文件。
test.c文件:定义函数
test.h文件:声明函数
main.c:测试
静态库
生成一个库其实就是将所有的代码都打包起来–最终得到一个库文件。
静态库需要创建.o文件打包起来才能链接。
1.先创建test.o文件
2.将所有test.o文件(这里只有一个)打包成一个libtest.a文件。
3.在当前文件下找test名字的.a文件,用生成可执行文件的命令,生成可执行文件,运行成功
4.静态库删除源库也能继续运行之前的可执行文件
动态库
动态库不需要.o文件,直接进行操作
1.输入命令,创建libtest.so文件,并将它放入/usr/lib目录里
- /usr/lib是系统默认头文件的目录
2.输入命令对头文件进行链接,生成可执行文件main。-l选项 指定头文件名字
3.动态库如果源库被删除,那么之前的可执行文件就不可以执行了
注意事项
- 动态库和静态库都是给其它代码使用,意味着动态库和静态库中不能有main函数
- 如果执行目录下静态链接库和动态链接库,gcc默认链接的是动态库
- 静态链接需要加上-static的gcc链接选项—链接的是静态库
- ldd 查看一个可执行程序的依赖库(动态库)