一、分文件编程案例
好处:
分模块的编程思想
(eg: 网络交给 a同事 来做
超声波交给 b同事来做
电机交给 c同事来做)
a.功能责任划分
b.方便调试
c.主程序简洁
二、库
a、静态库
静态函数库:是在程序执行之前(编译)就加入到目标程序当中去了
优点:运行快
缺点:大
b、动态库
动态函数库:是在程序执行时动态(临时)由目标程序去调用
缺点:运行慢
优点:小
三、库的制作
静态库的的制作:格式xxxx.a
a、gcc calcufuncs.c -c 生成xxxx.o文件
b、ar rcs libcalcufunc.a calcufuncs.o xxxx.o文件生成xxxx.a静态库文件
动态库的制作:
gcc -shared -fpic calcufuncs.c -o libcalc.so
-shared 指定生成动态库
-fpic 标准 fpic选项作用于编译阶段,在生成目标文件时就得使用该选项,以生成位置无关的代码
四、库的使用
静态库:
gcc calculatorT.c -lcalcufunc -L ./ -o mainProStasic
-lcalcufunc -l 是指定要用的动态库,库名砍头去尾
-L告诉gcc编译器从-L指定的路径去找静态库。默认是从
/usr/lib 或者 /usr/local/lib 去找
动态库:
gcc calcuatorT.c -lcalc -L ./ -o mainProDy
libcalc.so
也是砍头去尾
带动态库的程序
可以指定该程序运行时候,在LD_LIBRARY_PATH 所指定的路径去找库文件
export LD_LIBRARY_PATH="/home/pi/back/tset"
相关代码的实现:
一、分文件编程案例相关代码
先新建一个back 文件夹