Linux系统的ARM库移植

1.库的概念

.o文件的集合

2.静态链接库:libxxx.a //库的名字必须是这个形式

a.程序执行时只需要可执行文件

b.每个程序都单独拥有一个库的复制文件

c.程序升级时需要更换整个可执行文件

d.编译时需要库,运行时不需要

3.动态链接库:libxxx.so //库的名字必须是这个形式

a.程序执行时需要可执行文件&库文件

b.多个程序公用一个库文件

c.程序执行时只需更换库文件

d.编译和运行时都需要库文件

4.动态库的生成&使用

库的编译:

arm-linux-gnueabihf-gcc -fPIC -shared func.c -o libfun.so //将库的.c文件编译成.so文件

ARM应用程序的生成(fun.h放在main.c同层inc目录下,libfun.so存放在man.c同层lib目录下)

arm-linux-gnueabihf-gcc man.c -lfun -L ./lib -I ./inc //-L指定库文件路径,-I指定头文件路径

程序运行

将a.out拷贝到开发板指定目录下

将libfun.so拷贝到开发板的/lib目录下

执行程序

5.静态库的生成&使用

gcc -c fun.c -o fun.o

ar -rcv libfun.a fun.o

gcc man.c libfun.a //库文件被静态编译成可执行文件,运行时只需要执行可执行文件即可

相关推荐
Chenyu_3106 小时前
DPDK、TC 和 XDP:Linux 高性能网络到底在优化什么
linux·服务器·网络·缓存
陈让然7 小时前
WSL 桥接设置静态IP(快速)
linux·网络·ubuntu
乔旭伟7 小时前
Linux 服务器备份实战:一致性快照、日志归档与恢复演练
linux·运维·服务器
乔旭伟8 小时前
Linux 服务器安全加固实战:SSH、防火墙、补丁与入侵排查
linux·服务器·安全
刘胡子大叔9 小时前
备份包只有 1.5K?
linux·服务器·网络
无足鸟ICT9 小时前
【RHCA+】RPM包验证和数字证书
linux·运维·服务器
erzong2319 小时前
Linux操作系统:线程概念与控制
linux·算法
星恒随风9 小时前
Linux线程概念详解:从分页存储、页表、MMU与TLB,深入理解线程和进程的区别与联系
linux·运维·笔记·学习·状态模式
小范的技术工坊9 小时前
Linux应用开发(文件IO)
linux·stm32·单片机
小范的技术工坊9 小时前
Linux应用开发(文件属性)
linux·运维·服务器