场景:远程接受文件时,必须带wiringpi库编译,所有必须要有兼容的wiringpi库,程序才能运行
grep gcc * -nir
grep:在所有的文件当中匹配含有gcc的字段
*:所有的文件
nir:n显示行号;i:不区分大小写 r:递归(目录都找进去)
history:查看你之前输入的指令
带wiringPi库的交叉编译如何进行
首先把树莓派的wringPI库传到Ubuntu上来用:(正常是直接在上位机上下载wiringPi库)
树莓派的wiringPi库在/usr/lib/目录下(ls -l |grep wiringPi)
1、在树莓派端输入命令,提取wiringPi库
scp libwiringPi.so.2.50 xxx@xxx:/xxx/xxx/xxx
例如我的是:
scp libwiringPi.so.2.50 CLC@10.20.103.13:/home/CLC/lessonPI
一定是要拿libwiringPi.so.2.50,不能拿这个libwiringPi.so。libwiringPi.so是软连接,拿下来也无法使用
ls -l 软链接自动消失,无法指向>so.2.50,那该怎么办呢?
2、然后在Ubuntu端输入如下命令,生成软连接
软链接概念:Linux创建连接命令 ln -s创建软连接 - 张娜nana - 博客园
ln -s libwiringPi.so.2.50 libwiringPi.so
指令 参数 要被链接的文件 软链接文件名字
软连接概念:
- 软链接文件类似于Windows的快捷方式。
- 在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
- 在选定的位置上生成一个文件的镜像,不会占用磁盘空间
硬链接:ln libwiringPi.so.2.50 libwiringPi.so
在你选定的位置上生成一个和源文件大小相同的文件
3、输入如下命令进行交叉编译,并链接上wiringPi库
arm-linux-gnueabihf-gcc demo1.c -I /home/lhg/lessonPI/WiringPi/wiringPi -L. -lwiringPi
最后根据生成的可执行文件,输入如下命令传回树莓派运行
scp xxx2 pi@xxx:/xxx/xxx/xxx