文章目录
- 书接上回
- 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文件
结束
如遇问题,欢迎提出,共同进步