一般有三个文件:
src: 源文件 inc:头文件 lib:库文件
1、源代码的实现(你要创建的动态库 xxx.c xxx.h)分别放到 相应的文件中
2、编译动态库 arm-linux-gcc -shared -fpic xxx.c -o libxxx.so -I 头文件路径
shared:动态库
-fpic 不用考虑路径
xxx库的名字(尽量和函数的名字相同)
一定要记住 -I 头文件路径 (没有在同一路径下)
3、将生成的库放到 环境变量里面 : cp libsum.so /usr/bin
4、生成可执行文件 arm-linux-gcc main.c -o main -L/lib/path -lsum
-L 后面接库的名字
-l 后面接库的名字
5、交叉编译
要移植编译好的文件和动态库 把库放到环境变量里面
静态库的创建:
1、编译源代码 a.c a.h b.c b.h
2、把所有的 点c文件编译成 点o文件
eg: gcc -c a.c -o a.o gcc -c b.c -o b.o
3、 生成静态库 ar -rcv libxxx.a a.o b.o
4、 直接运行 gcc main.c -o main libxxx.a (也需要注意 -I库的路径 -i库的名字)
静态库动态库的区别:
动态库更加的灵活,静态库很大 库的所有内容都跟执行文件都链接在了一起,更加的保密,在交叉编译的时候不需要传递库的文件