交叉编译之软链接和硬链接

阅读: 评论:0

交叉编译之软链接和硬链接

交叉编译之软链接和硬链接

带WiringPi库的代码如何在上位机进行交叉编译?

1.需要先在宿主机上面(这里是ubuntu)安装wiringPi库
2.wiringPi库百度网盘:
链接:
提取码:35vt
进入解压后的WiringPi文件夹,然后打开INSTALL这个文件夹,查看如何下载,这里显示直接执行build文件即可(编译wiringPi库生成动态库,编译时需要链接,但是它是使用的gcc编译器,编译出来库是只能运行在x86平台上的),然后将会下载到/usr/local/lib这个目录下,然后可以使用指令:arm-linux-gnueabihf-gcc demo.c -I /home/fhn/wringPi/WiringPi/wiringPi -lwiringPi但是会发现报错,是因为链接wiringPi库的时候是链的/usr/local/lib这个目录下的libwiringPi.so

但是file libwiringPi.so去查看这个文件的属性,发现这个文件的属性是在x86上面运行的,然而我们需要在ARM上面运行,所以是不兼容的,会报错:
/home/fhn/arm-tool/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: cannot find -lwiringPi collect2: error: ld returned 1 exit status

正常情况下我们先要交叉编译wiringPi库,编译出适合树莓派的库,这时候交叉编译可执行程序的时候,链接库的格式也是正确的。那么我们可以将树莓派的wiringPi库拿到虚拟机,libwiringPi.so就这个动态库,但是这是个软连接(相当于快捷方式)

树莓派的wiringPi库:

cd /usr/lib/
ls

使用指令:ls -l |grep libwiringPi.so可以看出这个文件是指向libwiringPi.so.2.50这个动态库的。所以我们需要将这个动态库发送到ubuntu里面,使用指令:scp libwiringPi.so.2.50 fhn@192.168.43.112:/home/fhn/wringPi/WiringPi,就算将软连接发送到ubuntu也不会指向这个动态库,还需要我们自己创建动态库。如果传输过程中出现错误:ssh: connect to host 192.168.43.112 port 22: Connection refused lost connection表示ubuntu没有安装ssh,在ubuntu里面下载ssh即可:sudo apt-get install ssh

使用指令:ln -s libwiringPi.so.2.50 libwiringPi.so 创建软连接,下面有详细的讲解软硬链接,创建软连接后使用指令:arm-linux-gnueabihf-gcc hc.c -I /home/fhn/wringPi/WiringPi/wiringPi -L . -lwiringPi -o hc进行编译,其中:-I /home/fhn/wringPi/WiringPi/wiringPi是链接的wiringPi库的头文件,-L是指定动态库在当前目录下去查找库文件。

学习指令:grep gcc * -nir在所有文件里面查找gcc字眼,n表示显示行号、i表示不区分大小写、n表示递归查找、*表示在所有文件里面去查找。

软链接 参考文章:link

软链接概念(面试):
  1. 软链接文件有类似于Windows的快捷方式。
  2. 在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
    3. 你选定的位置上生成一个文件的镜像,不会占用磁盘空间
如何生成:
n -s libwiringPi.so.2.50 libwiringPi.so

指令 参数 要被链接的文件 软链接文件名字

详情参考博文:

=%257B%2522request%255Fid%2522%253A%2522166374952416782417027369%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=166374952416782417027369&biz_id=0&utm_medium=distribute.pc_-task-blog-2allsobaiduend~default-1-120187773-null-null.142v48pc_rank_34_default_3,201v3add_ask&utm_term=%E4%BA%A4%E5%8F%89%E7%BC%96%E8%AF%91%E8%BD%AF%E8%BF%9E%E6%8E%A5&spm=1018.2226.3001.4187

本文发布于:2024-02-04 19:10:33,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170714424458655.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:链接
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23