网站建设收费详情,舟山公司做网站,永仁县建设工程信息网站,cms做网站交叉编译工具链的安装及带wiringPi库的交叉编译实现 交叉编译的概念交叉编译工具链的安装下载交叉编译工具链配置环境遍变量编译程序到ARM平台 带wiringPi库的交叉编译下载编译wiringPi库调用树莓派的wringPi库 交叉编译的概念
交叉编译是在一个平台上生成另一个平台上的可执行… 交叉编译工具链的安装及带wiringPi库的交叉编译实现 交叉编译的概念交叉编译工具链的安装下载交叉编译工具链配置环境遍变量编译程序到ARM平台 带wiringPi库的交叉编译下载编译wiringPi库调用树莓派的wringPi库 交叉编译的概念
交叉编译是在一个平台上生成另一个平台上的可执行代码。因为目的平台上的资源贫乏无法运行我们所需要编译器宿主机host 编辑和编译程序的平台一般是基于X86的PC机通常也被称为主机。目标机target用户开发的系统通常都是非X86平台。host编译得到的可执行代码在target上运行。
交叉编译工具链的安装
下载交叉编译工具链 通过 树莓派官方 提供的交叉编译工具链下载并拷贝至ubuntu解压其中解压指令为 unzip tools-master.zip下载解压进入以下路径64位机tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin 通过 ls -l 查看所指向的真正目标文件 查看arm-linux-gcc 版本 ./arm-linux-gnueabihf-gcc -v 查看当下环境变量 echo $PATH
配置环境遍变量
临时有效 在当前环境变量中添加bin的路径地址即在当下配置环境变量 export PATH$PATH:[bin所在的路径]
export PATH$PATH:/home/yuanjl/pi/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin永久有效 打开目录下的.bashrc隐藏文件配置命令终端 vi /home/yuanjl/.bashrc在文件最后添加环境变量指令 export PATH$PATH:/home/yuanjl/pi/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin重新生效.bashrc文件 source /home/yuanjl/.bashrc新终端测试arm-linux-gcc版本
编译程序到ARM平台
程序编译 arm-linux-gnueabihf-gcc xx.c -o xxx 拷贝可执行程序到开发板 scp xxx pi192.168.137.114:/home/pi
带wiringPi库的交叉编译
下载编译wiringPi库
通过克隆官方wiringPi库获取
git clone git://git.drogon.net/wiringPi查看安装INSTALL文件 构建
./build编译程序
arm-linux-gnueabihf-gcc demo2.c -I /home/yuanjl/pi/WiringPi/WiringPi/wiringPi -lwiringPi报错
arm-linux-gnueabihf-gcc demo2.c -lwiringPi -I /home/yuanjl/pi/WiringPi/WiringPi/wiringPi
/home/yuanjl/pi/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库编译出的库适合树莓派这时候交叉编译可执行程序的试试链接库的格式也是正确的。通过 -I -L 来指定
下载的wiringPi缺少configure无法配置成arm-linux平台编译出来的库只适合X86平台不适合Linux平台。
调用树莓派的wringPi库
问题解决 把树莓派的wringPI库拿上来用
若还没有安装WiringPi库参考安装树莓派安装WiringPi库
/usr/lib查看软连接
ls -l |grep wiringPi将树莓派上的wiringPi拷贝至ubuntu
scp libwiringPi.so.3.10 yuanjl192.168.118.128:/home/yuanjl/pi在ubuntu上自行创建软连接
参考博文Linux创建连接命令 ln -s创建软连接
为libwiringPi软件软链接
ln -s libwiringPi.so.3.10 libwiringPi.so概念补充
软链接
软链接文件有类似于Windows的快捷方式。在符号连接中文件实际上是一个文本文件其中包含的有另一文件的位置信息。你选定的位置上生成一个文件的镜像不会占用磁盘空间如何生成ln -s libwiringPi.so.2.50 libwiringPi.so指令 参数 要被链接的文件 软链接文件名字
硬链接
ln libwiringPi.so.2.50 libwiringPi.so它会在你选定的位置上生成一个和源文件大小相同的文件
重新编译程序
arm-linux-gnueabihf-gcc demo2.c -I /home/yuanjl/pi/WiringPi/WiringPi/wiringPi -L. -lwiringPi