一、gcc生成静态库和动态库实例展示
静态库:
动态库:
1、编写程序
(1)创建目录
mkdir work2
(2)编写代码
编写page1.c
vi page1.c
编写page2.c
vi page2.c
编写page.h
vi page.h
编写main.c
vi main.c
退出编辑器使用esc后输入:wq回车即可。
扫描二维码关注公众号,回复:
14855507 查看本文章
2、静态库和动态库
(1)静态库
gcc编译后得到.o文件
gcc -c page1.c page2.c
静态库:
静态库文件名的命名用lib为前缀,后跟库名,扩展名为.a。
创建静态库用命令:ar
ar -crv libpage.a page1.o page2.o
gcc -o main main.c libpage.a
创建静态库完成后
可以输入命令:ls
检验静态库是否创建成功
运行程序
./main
(2)动态库
动态库文件名命名规范和静态库文件名命名规范类似
在动态库名前加前缀lib,但其文件扩展名为.so
gcc -shared -fPIC -o libpage.so
得到动态库文件libpage.so
检查是否创建成功,则可输入命令:ls
gcc -shared -fPIC -o libpage.so page1.o page2.o
sudo cp libpage.so /usr/lib
sudo cp libpage.so /usr/lib
用于移动动态库的目的地
输入命令:gcc -o main main.c libpage.a
gcc -o main main.c libpage.a
./main
3、静态库与动态库的比较
输入
ls -l libpage.a
在输入
ls -l lipage.so
通过对比两个结果可知,静态库生成的文件相较于动态库生成的文件更小
生成的可执行文件也有小差别。
二、总结
gcc中生成静态库和动态库对我来说是一个全新的内容,在学习过程中可能会有一点对知识点的模糊,但是经过多次的实际操作过后,让我对静态库和动态库有了更深的理解。通过多次的实验就能掌握这两者的使用方法,本次实验参考了如下作者的博客。
三、参考文献
https://blog.csdn.net/qq_43279579/article/details/109026927