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 //库文件被静态编译成可执行文件,运行时只需要执行可执行文件即可

相关推荐
腾科IT教育1 小时前
Oracle认证怎么选?2026年OCP/OCM报考指南
linux·运维·华为认证·hcie·开闭原则·datacom
longerxin20205 小时前
nano编辑器插入、编辑完整操作教程(Linux日志/配置专用)
linux·运维·编辑器
听风3478 小时前
Arch Linux 软件安装完全指南
linux·运维·archlinux·pacman
网络安全零基础教程9 小时前
网络安全春招面试避坑与复盘指南
linux·网络·安全·web安全·面试·职场和发展
扛枪的书生10 小时前
TigerVNC 安装流程
linux
Mortalbreeze10 小时前
深入 Linux Socket 编程:端口号、网络字节序与 struct sockaddr 详解
linux·服务器·网络·c++
磨十三10 小时前
U-Boot
arm开发·嵌入式硬件
躺柒10 小时前
读半导体简史08大型机
linux·服务器·c语言·数据库·unix·ibm
井川廊咏10 小时前
【总集篇】Linux | 如何创建一个 home 目录在 /data 磁盘的 sudo 用户(补档)
linux·运维·服务器
Kina_C10 小时前
LVS负载均衡的十二种核心调度算法
linux·运维·算法·负载均衡·lvs