Lab2树莓派交叉编译(windows平台)
2013-03-15 13:28
141 查看
何为交叉编译?
所谓交叉编译简单的说,就是在一个平台上编译出在另一个在平台能跑的可执行程序。比如,本文的情况是,在windows上编译出在树莓派上能跑的可执行程序。(其中,windows是运行在x86的cpu上,而树莓派是arm的cpu。)
树莓派上已经有gcc了,为什么还要用交叉编译这种方式呢?
因为,树莓派的运行速度是比较慢的,而我们的PC机运行速度比较快,如果编译都在树莓派上做,那么就只有慢慢等了。
SD卡(已经有镜像刷入)。
电源线及USB充电器。
cygwin。
有DHCP的网线。
安装cygwin,途中需要看看,稍作选择。(其中,源选择163的可能会快一些。)
其中要特别选择一下ssh,还有mintty,以便之后要用。其他就默认吧。当然,如果漏过了什么也可以重新打开这个程序,选择想要的,再安装一遍。
这样装完了可能会出现一个错误,叫pango1.0.sh exit code 1之类的,那么你需要进入到c:\cygwin\etc下面建一个文件夹叫pango,然后再执行一遍上面的过程,应该就没事了。(这就是个bug,pango他们已经在改了)这样装完了,其实默认的gcc等一系列的东西是没有,如果想要可以回去再选择再安装。
下载后,解开压缩,有两个选择一个是hardfp,另一个是softfp。(目前,我也不知道有什么区别。我用的是hardfp,之后试了一下浮点好像没有问题。)将你的选择解压缩后放到cygwin下面,形成这样的目录结构。c:\cygwin\opt\cross\x-tools\arm-unknown-linux-gnueabi。并在环境变量PATH中加入,c:\cygwin\opt\cross\x-tools\bin\
用sftp命令将a.out上传到树莓派上,然后用ssh登录后运行它。
但不管怎么样,我还是得感谢开源,感谢为开源做出贡献的人,感谢那些在网上分享出自己的知识的人。
所谓交叉编译简单的说,就是在一个平台上编译出在另一个在平台能跑的可执行程序。比如,本文的情况是,在windows上编译出在树莓派上能跑的可执行程序。(其中,windows是运行在x86的cpu上,而树莓派是arm的cpu。)
树莓派上已经有gcc了,为什么还要用交叉编译这种方式呢?
因为,树莓派的运行速度是比较慢的,而我们的PC机运行速度比较快,如果编译都在树莓派上做,那么就只有慢慢等了。
教程目标:
在windows平台上,搭建出树莓派的交叉编译环境教程器材及软件:
树莓派的板子。SD卡(已经有镜像刷入)。
电源线及USB充电器。
cygwin。
有DHCP的网线。
步骤:
cygwin:
下载cygwin(http://www.cygwin.com/)。安装cygwin,途中需要看看,稍作选择。(其中,源选择163的可能会快一些。)
其中要特别选择一下ssh,还有mintty,以便之后要用。其他就默认吧。当然,如果漏过了什么也可以重新打开这个程序,选择想要的,再安装一遍。
这样装完了可能会出现一个错误,叫pango1.0.sh exit code 1之类的,那么你需要进入到c:\cygwin\etc下面建一个文件夹叫pango,然后再执行一遍上面的过程,应该就没事了。(这就是个bug,pango他们已经在改了)这样装完了,其实默认的gcc等一系列的东西是没有,如果想要可以回去再选择再安装。
arm tool-chain:
到https://github.com/IanLinsdell/Raspberrypi去下载编译好的工具链。其实是可以在cygwin中编译出工具链的,但是,听同学说,他在linux上花了2个小时和4G+硬盘空间去编译,那还不如下一个现成的。下载后,解开压缩,有两个选择一个是hardfp,另一个是softfp。(目前,我也不知道有什么区别。我用的是hardfp,之后试了一下浮点好像没有问题。)将你的选择解压缩后放到cygwin下面,形成这样的目录结构。c:\cygwin\opt\cross\x-tools\arm-unknown-linux-gnueabi。并在环境变量PATH中加入,c:\cygwin\opt\cross\x-tools\bin\
测试:
打开mintty,建一个hello.cpp,然后,写一个经典的helloworld,之后编译一下arm-unknown-linux-gnueabi-g++ hello.cpp如果,好运的话,没有什么错误。(我之前尝试其他编译出来的工具链,不断地出错。)
用sftp命令将a.out上传到树莓派上,然后用ssh登录后运行它。
后记:
在这过程中,不断地出错,不断地上网去查,也不知道参考了多少。不能像linux下一样,有比较多的教程,剩下的只是等待的时间。也发现了许多开源软件的bug和问题,令人十分烦恼,比如下面这个。但不管怎么样,我还是得感谢开源,感谢为开源做出贡献的人,感谢那些在网上分享出自己的知识的人。
参考:
http://www.a2p.it/wordpress/tech-stuff/development/remote-debugging-raspberrypi/备注:
此教程为浙江大学计算机学院嵌入式课程的实验二实验报告。相关文章推荐
- Lab在局域网中找到你的树莓派(windows平台)
- MAC Windows linux(树莓派)三平台配置 opencv2.4.13 + QT环境
- Lab1:初见树莓派(Raspberry)(windows平台)
- Windows平台批处理命令教程
- windows平台.lnk文件感染技术研究
- 树莓派上面的U盘挂载去Windows啦啦啦
- Windows平台下搭建Android原生C/C++开发环境
- 解决Qt5在Windows平台MSVS2010编译缺少Platform Plugin的Issue
- windows平台下使用ffmpeg对视频进行H264编码总结
- 如何在微软Windows平台上打造出你的Linux开发环境(转载)
- STAIR Vision Library 安装配置心得(Windows平台下)
- MiinCMP SAE版修正windows平台下无法获取文档问题
- Windows 平台下安装Cygwin后,sshd服务无法启动
- gitbook安装与使用之windows下搭建gitbook平台
- 艾伟_转载:基于.NET平台的Windows编程实战(三)—— 项目的创建及主界面的设计
- Windows 7 X64位平台下,VC6调试运行程序,中断调试无法退出
- Python os模块os.system()返回值在windows和linux平台上不同
- Windows平台的PHP之开启COM配置
- Windows平台SSH服务器架设攻略