何为交叉编译?

所谓交叉编译简单的说,就是在一个平台上编译出在另一个在平台能跑的可执行程序。比如,本文的情况是,在windows上编译出在树莓派上能跑的可执行程序。(其中,windows是运行在x86的cpu上,而树莓派是arm的cpu。)

树莓派上已经有gcc了,为什么还要用交叉编译这种方式呢?

因为,树莓派的运行速度是比较慢的,而我们的PC机运行速度比较快,如果编译都在树莓派上做,那么就只有慢慢等了。

教程目标:

在windows平台上,搭建出树莓派的交叉编译环境

教程器材及软件:

树莓派的板子。

SD卡(已经有镜像刷入)。

电源线及USB充电器。

cygwin。

有DHCP的网线。

步骤:

cygwin:

安装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。

测试:

打开mintty,建一个hello.cpp,然后,写一个经典的helloworld,之后编译一下

arm-unknown-linux-gnueabi-g++ hello.cpp如果,好运的话,没有什么错误。(我之前尝试其他编译出来的工具链,不断地出错。)

用sftp命令将a.out上传到树莓派上,然后用ssh登录后运行它。

后记:

在这过程中,不断地出错,不断地上网去查,也不知道参考了多少。不能像linux下一样,有比较多的教程,剩下的只是等待的时间。也发现了许多开源软件的bug和问题,令人十分烦恼,比如下面这个。

但不管怎么样,我还是得感谢开源,感谢为开源做出贡献的人,感谢那些在网上分享出自己的知识的人。

参考:

备注:

此教程为浙江大学计算机学院嵌入式课程的实验二实验报告。

windows下的工具链 树莓派_Lab2树莓派交叉编译(windows平台)相关推荐

  1. windows下的工具链 树莓派_Windows下交叉编译Qt 5.14.2至树莓派平台 QEMU模拟树莓派...

    前些天有几个项目都打算用树莓派+Qt进行开发,可以手头没有树莓派设备,而且由于硬盘空间不太够了,想直接在Windows下开发,于是经过一番折腾,就有了这篇文章.... 如果感觉编译要等很久.很难受,可 ...

  2. windows下的工具链 树莓派_7. windows下 influxDB 操作工具 InfluxDBStudio

    Github地址 InfluxDBStudiohttps://github.com/CymaticLabs/InfluxDBStudio 版本发布地址 访问这里,查看相关的版本发布,如下: 可以看到, ...

  3. Windows下MetaMap工具安装

    Windows下MetaMap工具安装 一.Main MetaMap安装 Prerequisties 12G磁盘空间 JAVA6 or newer JRE or SDK installed Downl ...

  4. Windows下实用工具汇总(更新……)

    Windows下实用工具软件 文章目录 Windows下实用工具软件 一.系统工具 PowerToys: 快速启动(搜索工具):Everything, Listary, Wox 文件整理工具:Drop ...

  5. 在64位windows下使用instsrv.exe和srvany.exe创建windows服务

    在64位windows下使用instsrv.exe和srvany.exe创建windows服务 在32位的windows下,包括windows7,windows xp以及windows 2003,都可 ...

  6. 分析:windows下cmd默认的编码是ASCII编码 ,windows的中文环境下编码是GBK 方法一:在保存输出流保存的时候做一个对文字GBK编码,在输出到文件 如下 [python] view

    分析:windows下cmd默认的编码是ASCII编码 ,windows的中文环境下编码是GBK 方法一:在保存输出流保存的时候做一个对文字GBK编码,在输出到文件 如下 [python] view ...

  7. ubuntu下 gcc工具链的安装

    安装前的准备工作 ubuntu14.04中,一般将自定义的软件安装在/usr/local/目录下: arm s5pv210的工具链为arm_linux_2009q3.版本号为 工具链压缩包见下列网址: ...

  8. linux centos7 使用 crosstool-ng 构建 交叉编译 工具链 即构建各cpu架构平台的gcc编译器

    简介 crosstool-ng,全称是crosstool Next Generation,即下一代crosstool.crosstool是个交叉编译器的制作工具,但是做的不够好,于是有人(Yann E ...

  9. 编译器工具链(二)——交叉编译

    编译器工具链 编译器工具链包含各种其他的二进制文件,以帮助整个编译过程.在某些情况下,编译器本身也是工具链的一部分.以下列表被打包在工具链中: binutils(汇编器.链接器等) 各种编译器(gcc ...

  10. windows下文件共享以及通过网线在两台Windows电脑之间传数据

    windows下文件共享设置: 1.首先在windows7环境下(windows8与windows10同) 2.点击任务栏右下角网络图标--打开网络和共享中心--更改高级共享设置 3.点击公用网络,启 ...

最新文章

  1. ORB-SLAM3中的3d-2d匹配
  2. 用STL给C++充电:第一部分
  3. Example - RCP Text Editor
  4. OpenCV BLOB检测和过滤区域的实例(附完整代码)
  5. 30 个实例详解 TOP 命令!
  6. 跨站脚本专题 XSS
  7. 数据结构系统学习(1)数据类型和数据结构的概念
  8. Oracle 查找并删除表中的重复记录
  9. 《python 编程从入门到实践》变量
  10. c++string类寻找子串
  11. 常用网页设计html特殊符号转义字符编码查询对照表
  12. R语言文本聚类实例——以《金庸全集》为例
  13. 彩灯控制器课程设计vhdl_基于VHDL的彩灯控制器的设计
  14. 代码编辑器CodeMirror及其简单的配置
  15. Qt 判断鼠标在某一控件上
  16. 超星问卷与麦客问卷自动填写(selenium+Chrome)
  17. 推荐一个免费服务器网站|亲测可用
  18. android 机器人gif,看完这15张GIF图 就再也不用担心机器人叛乱了
  19. 最新综述:深度学习图像三维重建最新方法及未来趋势
  20. 查看Window系统激活信息

热门文章

  1. 【校内模拟】2048
  2. 2017-2018 20155309 南皓芯 信息安全基础设计第八周博客
  3. 2.3 利用FTP服务器下载和上传文件
  4. 再回首Java第二十二天
  5. 关于断点续传的那些事
  6. linux上php环境安装(包含svn的使用、php扩展安装)
  7. SUBMIT的几种情况
  8. Windows Phone开发(12):认识一下独具个性的磁贴
  9. 探索线程安全背后的本质——volatile
  10. Spring之Aop代理对象的产生(一)