库的制作:
已经做好两个文件 calculatorT.c calculatorfun.c
静态库
1.静态函数库,是在程序执行前就加入到目标程序中去了
2,优点:运行快,发布程序无需提供静态库,因为已经在app中,移植方便
3.缺点:大
静态库的制作:
格式libcalculatorfun.a
1 gcc calculatorfun.c -c
生成calculatorfun.o文件
2 ar rcs libcaljin.a calculatorfun.o
calculatorfun.o文件生成libcajin.a静态库文件
静态库的使用:
1 gcc calculatorT.c -lcaljin -L ./ -o mainjin
1.1 -lcaljin:-l是指定要用的静态库,库名是 libcaljin.a砍头去尾
1.2 -L是告诉gcc编译器从-L指定的路径去找静态库。默认是从/usr/lib或者/usr/local/lib去找
1.3 完了后运行时用./mainjin
1.4 当前工作目录中只需含有calculatorT,c calculatorfun,h libcaljin,a
动态库的制作:
格式libcalculator.so
1 gcc -shared -fpic calculatofun.c -o libcaldong.so
1.1 -shared 指定生成动态库
1.2 -fpic 标准,fpic选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码
动态库的使用
1.gcc calculatorT.c -lcaldong -L ./ -o maindong
1.1 带动态库的程序,可以指定该程序运行的,在LD_LIBRARY_PATH所指定的路径去找库文件export LD_LIBRARY_PATH="/home/pi/back/test"
1.2 但export LD_LIBRARY_PATH="/home/pi/back/test"是一次性的,所以一般配合脚本使用,即作一个sh文件把export LD_LIBRARY_PATH="/home/pi/back/test"和./a.out放在一起
1.3 做完脚本文件后,因为脚本是没有可执行权限的,所以要用chmod +x start.sh 给脚本文件权限(x是执行的意思)