文章目录
- 为什么需要静态库和动态库
- 静态库
- 动态库
一、为什么需要静态库和动态库
假如你想把你功能模块的代码给别人用,但是又不想别人看到代码的内容时,就可以制作一个库文件,只能让他使用,而看不到你具体实现的方法。
二、静态库
静态库制作方法:
1.生成目标文件(.o文件)
gcc -c add.c
2.制作静态库(.a结尾)
ar rcs lib库的名字.a add.o
3.使用静态库
gcc main.c -l add -L ./
我们只需要把头文件和静态库给他使用就可以了,静态库优点:执行快,在你编译的时候就已经加入进去了,缺点:占用内存
三、动态库
动态库制作方法:
1.制作动态库(.so结尾)
gcc -fpic -shared add.c -o libadd.so
2.使用动态库
gcc main.c -l add -L ./
3.因为动态库是在编译时自己去找库,默认去usr/lib找,所以我们要把库加入到usr/lib或设置环境变量
export LD_LIBRARY_PATH=/home/orangepi (仅当前目录有效)
加入到 vi ~/.bashrc (设置成全局有效)
source ~/.bashrc (启动)
动态库优点:占用内存小,缺点:执行慢,因为是在编译的时候自己去找库