带wiringpi库的交叉编译

带wiringpi库的交叉编译

树莓派已带有wiringPi库,在树莓派上编译带有<wiringPi.h>库的源码,必须使用

gcc demo1.c -lwiringPi -o demo1.out

但是在Ubuntu上交叉编译时就需要外接库,否则编译失败
在这里插入图片描述
第一步、将下面这个wiringpi外接库包这个放入linux中
在这里插入图片描述
第二步、安装外接库,./build进行安装
我安装的时候遇到个问题
在这里插入图片描述
**解决办法:**安装make,然后再./build安装

sudo apt-get install make

第三步、找到wiringPi库里的wiringpi里的头文件,知道它的路径
在这里插入图片描述
第四步、在编译时加上库,发现编译的调试信息不一样了
在这里插入图片描述
第五步、再加上-lwiringPi进行编译
在这里插入图片描述
结果:还是发现编译报错

>arm-linux-gnueabihf-gcc demo1.c -I
>/home/admin_/learn/lessonPi/WiringPi/wiringPi -lwiringPi -o demo1
/home/admin_/learn/lessonPi/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/../lib/gcc/arm-linux-gnueabihf/4.8.3/../../../../arm-linux-gnueabihf/bin/ld: 找不到 -lwiringPi
collect2: 错误: ld 返回 1

原因在于-lwiringPi工具链跑到/usr/local/lib下运行,我们查看链接的属性,发现是X86架构的,而我们使用的交叉编译工具链是ARM架构的,平台不兼容,这就是问题所在
在这里插入图片描述
第六步、解决办法是将树莓派的wiringPi库拿上来用
树莓派wiringPi库的路径:/usr/lib/
在这里插入图片描述

scp libwiringPi.so.2.50 admin_@192.168.31.21:/home/admin_/learn/lessonPi
将wiringPi库拷贝到Ubuntu上,软链接需要自行创建,直接拷贝无法链接到.so.2.50

第七步、创建软链接
软链接的参考博文:https://www.cnblogs.com/zhangna1998517/p/11347364.html
软链接:
1、链接文件有类似于Windows的快捷方式。
2、它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
3、不占用磁盘空间
生成软链接:

ln -s libwiringPi.so.2.50 libwiringPi.so

在这里插入图片描述
检查软链接生成成功!
第八步、编译

arm-linux-gnueabihf-gcc demo1.c -I /home/admin_/learn/lessonPi/WiringPi/wiringPi -L. -lwiringPi -o demo1.out

编译成功!
在这里插入图片描述

补充:

grep gcc * -nir//查找gcc在所有文件内,n是显示行号,i是不区分大小写,r是递归
history | grep demo2//从历史记录里查看demo2有关的命令

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值