一、静态库
优点:
运行快,发布程序无需提供静态库,因为已经在app中,移植方便
缺点:
更新慢 繁琐
1、静态库的生成
-
gcc xxx.c -c
a. 生成xxx.o
文件 -
ar rcs libxxx.a xxx.o
xxx.o文件生成xxx.a静态库文件Note:xxx.c 是你要打包的功能性文件
2、静态库的使用
-
gcc MainT.c -lxxx -L ./
-o Test -
./Test
Note: MainT.c 是你要执行的主文件 ,xxx是libxxx.a 这个库掐头去尾得来的。-l是指定要用的动态库 -L ./ 指定从当前目录去找 找不到
再去 /usr/lib/ /usr/local/lib 这些目录去找。Test 是谁便起的名字
二、动态库
优点:
小,多个程序共用,节省内存
缺点:
加载速度慢,发布程序时需要提供依赖的到动态库
1、动态库的生成
-
gcc -shared xxx.c -o libxxx.so
2、动态库的使用
-
gcc MainT.c -lxxx -L ./ -o MainTdon
-
运行时指定动态库的位置,(不然直接./MainTdon 会出现报错)解决方法:写一个脚本,在脚本里面配置一个环境变量 和 写一个./MainTdon,
-
可以指定该程序运行时候,在LD_LIBRARY_PATH 所指定的路径去找库文件
export LD_LIBRARY_PATH="/home/pi"
-
./start.sh
Note :xxx是libxxx.so 这个动态库掐头去尾得来的 。/home/pi 是你动态库所在的位置
个人的笔记 望指教