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

相关推荐
小成202303202654 小时前
Linux高级02
linux·开发语言
mounter6254 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
++==5 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
特长腿特长5 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy5385 小时前
Linux环境变量
linux·运维·服务器
pluvium275 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
无级程序员5 小时前
centos7 安装 llvm-toolset-7-clang出错的问题解决
linux·centos
CHHC18806 小时前
NetCore树莓派桌面应用程序
linux·运维·服务器
云栖梦泽7 小时前
Linux内核与驱动:9.Linux 驱动 API 封装
linux·c++
si莉亚9 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源