RaspberryPi交叉编译环境配置-Ubuntu & wiringPi & Qt
1、配置RaspberryPi交叉编译环境:
在开发RaspberryPi Zero的过程中,由于Zero板卡的CPU的处理性能比较弱,因此其编译的性能比较弱,需要将代码在PC电脑上交叉编译完成之后再拷贝到Zero上调试运行。配置交叉编译环境的基本步骤如下所示:
Step1:从github网站获取raspberryPi交叉编译工具包:https://github.com/raspberrypi/tools
- git clone git@github.com:raspberrypi/tools.git
上述文件下载完之后的内容如下所示(其中arm-bcm2708文件夹中的内容为交叉编译器):
Step2:将交叉编译器配置到环境变量:
编辑环境变量配置文件.bashrc,在文件的末尾添加如下的代码(注意路径,不同的路径记得修改):
- export PATH=$PATH:~/Raspberry_Project/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
配置完成之后,需要执行source指令,让.bashrc生效:
- source ~/.bashrc
Step3:测试交叉编译环境
如下图所示,在ubuntu命令行中输入如下指令:
- arm-linux-gnueabihf-gcc -v
有此图说明配置成功。
2、交叉编译执行main.c文件:
Step1:编写了如下的测试文件:
- #include <stdio.h>
- int main(void)
- {
- printf("Test the cross-compile-env for raspberrypi!\n");
- return ;
- }
Step2:使用如下的指令编译上述文件:
- arm-linux-gnueabihf-gcc -c main.c -o main
编译的结果如下:
将编译生成的main文件拷贝到树莓派上,修改执行权限,执行即可。
3、交叉编译过程中需要链接第三方的库文件:
在编写程序的过程中,我们需要使用到wiringPi库相关的内容,因此需要将wiringPi的文件引入。
Step1:首先下载wiringPi的程序包:https://github.com/mm1994uestc/WiringPi。可以通过github直接下载源代码:
- git clone git@github.com:mm1994uestc/WiringPi.git
下载完成之后进入文件夹安装wiringPi的库,安装方法参考这里:https://www.cnblogs.com/uestc-mm/p/6290521.html
注:安装过程中如果出现问题,请使用sudo权限操作,sudo make install
重点:将wiringPi安装在树莓派之后,我们可以在其编译文件夹下面找到编译成功的wiringPi库程序或者安装在/usr/lib当中,如下所示:
libwiringPi是基本的wiringPi程序库
我们可以将这些文件拷贝到Ubuntu环境下,为交叉编译做好准备,如下所示:
a. devLib:Raspberry basical hardware driv.
b. examples:Some examples for the wiringPi Lib.
c. gpio:gpio demo to show the control of gpio.
d. libwiringPi.so:Baisic wiringpi library usefull when you are compile the c code.
e. main:Executiable file for Raspberry.
f. main.c:The c source code.
g. Makefile:Used to compile the C Code into executibale binary file.
h. wiringPi:The source Code of wiringPi(include .c & .h file),when you are compile the code,it needed.
i. wiringPiD:Other devices Library Source Code if you used it,you need to include the lib and .h file.
Step2:安装拷贝完成之后我们编写如下的程序:
- #include <stdio.h>
- #include <stdlib.h>
- #include "wiringPi.h"
- int main(int argc, char **argv)
- {
- if(argc<){
- printf("You should give a param while call the program1\n");
- return ;
- }
- int pinNumber = atoi(argv[]);
- printf("The control pin number is:%d\n",pinNumber);
- if(- == wiringPiSetup()){
- printf("Setup wiringPi failed!\n");
- return ;
- }
- pinMode(pinNumber, OUTPUT);
- while(){
- digitalWrite(pinNumber,);
- delay();
- digitalWrite(pinNumber,);
- delay();
- }
- printf("Hello, you do it succeed!!!\n");
- return ;
- }
Step3:编译上述程序,这里编写了简单的Makefile文件,如下所示:
- main:main.c
- arm-linux-gnueabihf-g++ main.c -o main -L. -lwiringPi -IwiringPi
- clean:
- rm main
注:这里的路径-I是wiringPi的安装路径。一定要应用wiringPi的相关文件的路径才能调用wiringPi的库,举一反三,其他的库也可以类似的方式,对于静态的library,我们可以使用-l的方式来链接,如果在RaspberryPi的本地,我们可以使用如下的方式(这里链接了math数学库&wiringPi库):
- gcc -c main.c -o main -lwiringPi -lm
-L.的意义表示,程序调用的库在当前文件目录下,如果不再请举一反三,设置Library库的绝对路径。-I的意思是include的意思,将wiringPi的.h文件包括进来。
关于Makefile链接相关的内容参考这里:https://www.cnblogs.com/starf/p/3652563.html
Step4:make生成RaspberryPi的可执行文件,通过scp拷贝到Raspberry执行即可:
4、Reference:
交叉编译参考:https://www.cnblogs.com/xieyajie/p/4699724.html
wiringPi官网:http://wiringpi.com/
RaspberryPi交叉编译环境配置-Ubuntu & wiringPi & Qt的更多相关文章
- 开发环境配置--Ubuntu+Qt4+OpenCV(三)
同系列文章 1. 开发环境配置--Ubuntu+Qt4+OpenCV(一) 2. 开发环境配置--Ubuntu+Qt4+OpenCV(二) 3. 开发环境配置--Ubuntu+Qt4+OpenCV(三 ...
- 开发环境配置--Ubuntu+Qt4+OpenCV(一)
同系列的文章 1. 开发环境配置--Ubuntu+Qt4+OpenCV(一) 2. 开发环境配置--Ubuntu+Qt4+OpenCV(二) 3. 开发环境配置--Ubuntu+Qt4+OpenCV( ...
- 开发环境配置--Ubuntu+Qt4+OpenCV(二)
同系列文章 1. 开发环境配置--Ubuntu+Qt4+OpenCV(一) 2. 开发环境配置--Ubuntu+Qt4+OpenCV(二) 3. 开发环境配置--Ubuntu+Qt4+OpenCV(三 ...
- 学习记录:交叉编译环境配置(buildroot and gdb&gdbserver)【转】
本文转载自:https://blog.csdn.net/zhy025907/article/details/52332528 1,背景 因为参加公司的路由器逆向培训,首先需要的就是环境的配置准备工作, ...
- 【cocos 2d-x】VS2013+cocos2d-x3.3Final+Adriod交叉编译环境配置(超详细版)
本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder 微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.com ...
- MT7688交叉编译环境配置
在ubuntu下设置MT7688交叉编译环境,用于编译mt7688下使用的程序 1.首先在vmware下安装ubuntu64位,由于交叉编译工具需要64位系统,此次安装的是ubuntu14 2.在ub ...
- [环境配置]Ubuntu 16.04 源码编译安装OpenCV-3.2.0+OpenCV_contrib-3.2.0及产生的问题
1.OpenCV-3.2.0+OpenCV_contrib-3.2.0编译安装过程 1)下载官方要求的依赖包 GCC 4.4.x or later CMake 2.6 or higher Git GT ...
- 关于Linux的交叉编译环境配置中的问题
Linux的交叉编译arm-linux-gcc搭建时,安装结束却无法查看版本.输入以下命令查看Ubuntu的版本: uname -a 可以看到此Ubuntu为64位16.04.1版本,所以需要下载32 ...
- [环境配置]Ubuntu 16.04+CUDA 9.0+OpenCV 3.2.0下编译基于Caffe的MobileNet-SSD踩过的一些坑
SSD是Caffe的一个分支,源码在github上:https://github.com/weiliu89/caffe/tree/ssd $ git clone https://github.com/ ...
随机推荐
- 转:extjs 添加loading状态的三种解决办法:
extjs 添加loading状态的三种解决办法: 方法一: //materialGrid 指需要显示loading状态的控件id var o=Ext.getCmp('materialGrid'); ...
- SD相关号码范围IMG设定
一.定义项目建议的号码范围——OVZA.VN01 二.免费货物的号码范围——WC07 三.定义销售文件的号码范围——VN01 四.金额契约产品建议模组的号码范围——WSN1 五.定义出口.进口的号码范 ...
- python安装二进制k8s 1.11.0 一个master、一个node 查看node节点是主机名---apiserver无法启动,后来改了脚本应该可以
一.脚本说明: 本实验中master.node.etcd都是单体. 安装顺序为:先安装test1节点主要组件,然后开始安装test2节点,最后回头把test1节点加入集群中,这样做目的是理解以后扩容都 ...
- Squirrel GUI+ Phoenix 连接Hbase
一. 参考 http://blog.csdn.net/maomaosi2009/article/details/45598823 二. 问题解决 >Squirrel Client Connect ...
- Git 常用命令大全-转载
一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...
- NJCTF (easycrack)
安装app查看.一个输入框,输入随便输入显示Try again. 放入JEB反编译. 关于输入框监听是第一次见,具体可以看看这个博客https://www.jianshu.com/p/f976c677 ...
- AE调用GP工具(创建缓冲区和相交为例)
引用 Geoprocessing是ArcGIS提供的一个非常实用的工具,借由Geoprocessing工具可以方便的调用ArcToolBox中提供的各类工具,本文在ArcEngine9.2平台环境下总 ...
- 保存cookie 到本地
#encoding: utf-8 from urllib import requestfrom http.cookiejar import MozillaCookieJar #创建一个cookieja ...
- python基础之数据类型转换
方法转换:str -->list str.split() list -->str ''.join(list)强制转换:str -->list list(str) str --> ...
- firefox PAC代理
在linux用firefox,又不像windows下的chrome那样,可以直接设置个自动代理,但是发现firefox有个自动代理的功能哦. /home/allen/Documents/google. ...