动态库的创建(交叉编译)

一般有三个文件:

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库的名字)

静态库动态库的区别:

                                动态库更加的灵活,静态库很大 库的所有内容都跟执行文件都链接在了一起,更加的保密,在交叉编译的时候不需要传递库的文件

你可能感兴趣的:(Liunx,arm开发)