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

相关推荐
玖剹3 分钟前
多线程编程:从日志到单例模式全解析
java·linux·c语言·c++·ubuntu·单例模式·策略模式
Monody_R7 分钟前
rhce作业
linux·服务器·apache
dessler8 分钟前
MYSQL-外键(Foreign Key)
linux·运维·mysql
随机昵称_12345615 分钟前
Linux如何从docker hub下载arm镜像
java·linux·arm开发·docker
q***098020 分钟前
在linux(Centos)中Mysql的端口修改保姆级教程
linux·mysql·centos
BD_Marathon22 分钟前
将 CentOS 风格的命令行提示符(如 [root@slave1 ~]#)修改为 Ubuntu 风格
linux·ubuntu·centos
liu****26 分钟前
16.udp_socket(三)
linux·开发语言·数据结构·c++·1024程序员节
不会写程序的未来程序员27 分钟前
Linux 虚拟机设置静态 IP 地址指南
linux·运维·tcp/ip
q***96581 小时前
如何在 Ubuntu 22.04 上安装 MySQL
linux·mysql·ubuntu
4t4run1 小时前
16、Linux常用命令-vim 文本编辑
linux·vim