交叉编译之wiringPi库,【全志H616,orangepi-zero2】

news2024/11/24 21:05:39

文章目录

  • 书接上回
  • wiringPi全志库下载
  • 建立软链接
    • 软连接
      • 软连接创建
    • 硬链接
      • 硬链接创建
  • 测试
    • 树莓派运行servo文件
  • 结束

书接上回

上回已经完整的安装了全志的gcc交叉编译工具
https://blog.csdn.net/qq_52749711/article/details/132306764

wiringPi全志库下载

下载链接
先搞到自己的开发板,直接解压

unzip wiringOP-master.zip

解压完进入目录,找到build文件所在地
直接运行

./build

则直接安装完成,可以使用

之后同样步骤搞到自己虚拟机上

注意虚拟机输入./build之后,会弹出让你选择安装选项
之后弹出如下框框
在这里插入图片描述
按道理安装25,或者26都可以,我输入的是26(眼瞎看错了,但是居然可行,有大佬可以说一下26是什么鬼)

装好之后,直接运行对应带有wiringPi库的程序是不行的,会直接报错
为什么?(走了很多弯路,总结)
因为即使选择了对应型号,他的内部编译并不是用的咱们上回安装的交叉编译gcc,而是使用虚拟机的gcc,导致,出来的库都是x86平台下的。所以需要把虚拟机的库重新拷贝到虚拟机
所需库:
在这里插入图片描述
在这里插入图片描述
这俩个库分别在,开发板的wiringPi安装目录,的wiringPi目录和devLib目录下面,使用scp命令考出来

scp libwiringPi.so.2.46 shunge@192.168.10.31:/home/shunge
scp libwiringPiDev.so.2.46 shunge@192.168.10.31:/home/shunge

成功之后,要创建链接,方便库的调用,总不会你想调用库需要加上一堆版本信息把~

建立软链接

这里普及一下俩种链接

软连接

windows快捷方式见过吧,没错,linux软连接就是类似快捷方式,建立之后在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,这个文件包含了正真文件的位置信息等等

软连接创建

//指令 参数   要被链接的文件    软链接文件名字
 ln -s libwiringPi.so.2.46 libwiringPi.so

-s就是符号链接的意思

硬链接

它会在你选定的位置上生成一个和源文件大小相同的文件

硬链接创建

不加参数-s即可

ln libwiringPi.so.2.46 libwiringPi.so

看了之后你会怎么选择呢?

果断软连接
输入命令

 ln -s libwiringPi.so.2.46 libwiringPi.so
 ln -s libwiringPiDev.so.2.46 libwiringPiDev.so

于是乎可以编译带有wiringPi库的.c文件了

测试

之前写好的一个舵机程序,正好用来实验。(代码不放这里看了,主要讲解编译过程)

编写build.sh方便以后直接编译

aarch64-none-linux-gnu-gcc $1 -I ./wiringOP-master/wiringPi -L. -lwiringPi -lwiringPiDev -lpthread -lm -lcrypt -lrt -g -o $2

使用build.sh编译带有wiringPi库的.c文件

./build.sh servo.c servo

在这里插入图片描述
没有报错信息,且在当前目录生成了servo文件
使用file看文件信息。
在这里插入图片描述
完美,ARM,并不是x86
使用spc上传树莓派

scp servo orangepi@192.168.10.25:/home/orangepi/test

在这里插入图片描述

树莓派运行servo文件

在这里插入图片描述

结束

如遇问题,欢迎提出,共同进步

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/891109.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Jmeter+ant+jenkins实现持续集成

jmeterantjenkins持续集成 一、下载并配置jmeter 首先下载jmeter工具,并配置好环境变量;参考:https://www.cnblogs.com/YouJeffrey/p/16029894.html jmeter默认保存的是.jtl格式的文件,要设置一下bin/jmeter.properties,文件内容…

中国电信物联网收入33亿元,用户达到4.73亿户!

近日,中国电信发布2023中期业绩,物联网迎来强劲增长,物联网收入33亿元,同比增长75.7%,物联网用户4.73亿户,同比增长31.5%。天翼物联自主研发的AIoT物联网平台,升级为云原生3AZ架构,提…

在线课堂录播直播管理系统SpringBoot+Vue

在线课堂录播直播管理系统SpringBootVue 文章目录 在线课堂录播直播管理系统SpringBootVue共三个端:后端、后台管理系统、前端,如要学习看评论区(全部源码、文档、数据库)。内置功能一、前端二、后台管理三、后端--代码全有。四、…

k8s 认证和权限控制

k8s 的认证机制是啥? 说到 k8s 的认证机制,其实之前咋那么也有提到过 ServiceAccouont ,以及相应的 token ,证书 crt,和基于 HTTP 的认证等等 k8s 会使用如上几种方式来获取客户端身份信息,不限于上面几种…

【数据结构OJ题】链表分割

原题链接:https://www.nowcoder.com/practice/0e27e0b064de4eacac178676ef9c9d70?tpId8&&tqId11004&rp2&ru/activity/oj&qru/ta/cracking-the-coding-interview/question-ranking 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2…

Java面向对象——封装以及this关键字

封 装 封装是面向对象编程(OOP)的三大特性之一,它将数据和操作数据的方法组合在一个单元内部,并对外部隐藏其具体实现细节。在Java中,封装是通过类的访问控制修饰符(如 private、protected、public&#x…

Android Drawable转BitmapDrawable再提取Bitmap,Kotlin

Android Drawable转BitmapDrawable再提取Bitmap&#xff0c;Kotlin <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"…

C++ 结构体的对齐

C 结构体的对齐 flyfish 文章目录 C 结构体的对齐一 非对齐方式二 对齐方式示例1示例2 三 对齐到指定字节数 boundary 一 非对齐方式 也就是按照1字节对齐 #pragma pack(1) typedef unsigned char BYTE; typedef struct message {BYTE a[4];BYTE b[2];BYTE *c;BYTE d[4];} M…

阿里云ECS服务器企业级和共享型介绍_企业级常见问题解答FAQ

阿里云企业级服务器是什么&#xff1f;企业级和共享型有什么区别&#xff1f;企业级服务器具有独享且稳定的计算、存储、网络资源&#xff0c;如ECS计算型c6、通用型g8等都是企业级实例&#xff0c;阿里云百科分享什么是企业级云服务器、企业级实例的优势、企业级和共享型云服务…

如何收缩wsl2虚拟磁盘

简介 WSL2使用虚拟化层为它带来更高的性能和兼容性。但是&#xff0c;WSL2 的少数缺点之一是它使用虚拟磁盘 &#xff08;VHDX&#xff09; 来存储文件系统。这意味着您的虚拟磁盘占用了 100GB&#xff0c;但 WSL2 只需要 15GB... 所以要寻找一种缩小 WSL2 虚拟磁盘的方法&…

​Redis概述

目录 Redis - 概述 使用场景 如何安装 Window 下安装 Linux 下安装 docker直接进行安装 下载Redis镜像 Redis启动检查常用命令 Redis - 概述 redis是一款高性能的开源NOSQL系列的非关系型数据库,Redis是用C语言开发的一个开源的高键值对(key value)数据库,官方提供测试…

Leetcode每日一题:1444. 切披萨的方案数(2023.8.17 C++)

目录 1444. 切披萨的方案数 题目描述&#xff1a; 实现代码与解析&#xff1a; 二维后缀和 动态规划 原理思路&#xff1a; 1444. 切披萨的方案数 题目描述&#xff1a; 给你一个 rows x cols 大小的矩形披萨和一个整数 k &#xff0c;矩形包含两种字符&#xff1a; A …

根据Dockerfile创建容器案例讲解

-f为dokerfile的路径&#xff0c; -t为新镜像的名称及版本。 后面这个点是寻址路径。

【第三阶段】kotlin语言的字符串遍历操作

fun main() {val str1:String"AFWSDKFJWIUHGWINUWVRV"str1.forEach(){ it->println("所有字符&#xff1a;$it")} }执行结果

移动折叠隔断设计,自由与灵感的展现

移动折叠隔断设计可以展现自由与灵感的多样性&#xff0c;以下是一些相关的设计思路&#xff1a; 多样的材质选择&#xff1a;折叠隔断可以采用各种材质&#xff0c;如玻璃、木材、金属等&#xff0c;每种材质都有独特的质感和表现力。可以根据设计需求选择合适的材质&#xff…

数据结构—树表的查找

7.3树表的查找 ​ 当表插入、删除操作频繁时&#xff0c;为维护表的有序表&#xff0c;需要移动表中很多记录。 ​ 改用动态查找表——几种特殊的树 ​ 表结构在查找过程中动态生成 ​ 对于给定值key ​ 若表中存在&#xff0c;则成功返回&#xff1b; ​ 否则&#xff0…

postgresql 分类排名

postgresql 分类排名 排名窗口函数示例CUME_DIST 和 NTILE 排名窗口函数 排名窗口函数用于对数据进行分组排名。常见的排名窗口函数包括&#xff1a; • ROW_NUMBER&#xff0c;为分区中的每行数据分配一个序列号&#xff0c;序列号从 1 开始分配。 • RANK&#xff0c;计算每…

okhttp源码简单流程分析

拦截器详细解析可以看大佬简书 "https://www.jianshu.com/p/6fac73f7570f"和 “https://www.jianshu.com/p/3c740829475c” okhttp请求流程 1&#xff1a;OkHttpClient okHttpClient new OkHttpClient.Builder() 构建一个okhttpClient对象&#xff0c;传入你想传入的…

Wlan——锐捷AC冗余方案讲解(集群AC、热备AC、VAC)

目录 无线AC集群 AC集群的原理 AC集群的实现方式与配置 通过AC集群实现负载分担 AP的Failover优先级 优缺点 无线AC热备 AC热备的基本概念 AC热备工作原理 保活报文类型 热备工作模式 热备AC的配置 故障检查 优缺点 无线VAC VAC的基本概念 VSL链路和业务链路 …

软件需求-架构师之路(五)

软件需求 软件需求&#xff1a; 指用户 对系统在功能、行为、性能、设计约束等方面的期望。 分为 需求开发 和 需求管理 两大过程。 需求开发&#xff1a; 需求获取需求分析需求定义&#xff08;需求规格说明书&#xff09;需求验证&#xff1a;拉客户一起评审&#xff0c…