Duanxx的嵌入式学习:
Win7安装交叉编译环境
——Duanxx
——2015-09-15
ARM-linux的交叉编译环境,一般的教程都是在linux系统(比如ubuntu)上安装linaro的arm-linux-gnueabihf编译环境,然后再安装Eclipse和CDT,这样来实现交叉编译环境的安装。
我个人使用这种方法已经使用了几年了,因为我个人比较喜欢使用Linux系统(我使用的是CentOS),所以感觉很自然。
但对于初学者而言,如果对linux系统不熟悉,这个方法非常的麻烦,仅仅是为了编译一个可以在ARM-linux上运行的elf文件,还要装虚拟机,学习linux系统的很多使用方法,挺麻烦的。
这两天试了一下在windows平台上安装交叉编译环境,成功了,这里将详细教程写下来,就当是做个记录。
目录
一、安装Eclipse (2)
二、安装CDT (3)
2.1Eclipse Marketplace 安装CDT (4)
2.2 Install New Software 安装CDT方案1 (4)
2.3 Install New Software 安装CDT方案2 (7)
2.4 手动安装CDT (9)
三、安装minGW (10)
四、安装Linaro ToolChain (10)
五、搭建交叉编译开发环境 (13)
六、RSE将可执行文件传输到ARM上 (26)
一、安装Eclipse
Eclipse的下载网址是:/downloads/
会有下面的这个网页,我打红色框的都可以直接使用,这里其实是无所谓的,因为Eclipse是基于插件的开发环境,如果只是为了开发C++的,可以考虑选择后面一个“Eclipse IDE for c/C++ Developers”。
Eclipse解压后就可以直接使用,见下图中的eclipse.exe,同时注意一下freatures和plugins文件夹。
二、安装CDT
如果在第一步选择的是“Eclipse IDE for c/C++ Developers”,可以跳过这一节。
CDT是Eclipse用于编译C/C++的插件,总共有三种方式可以安装,这里逐一介绍一下:由于google被封了,如果人品不好前两种方法可能行不通,可以直接使用第三种方法。
这里首先要看一下当前Eclipse的版本:
Help -> About Eclipse ,可以看到我当前的Eclipse版本是Luna,4.4.2
2.1 Eclipse Marketplace 安装CDT
在Eclipse 的Help -> Eclipse Marketplace 中
搜索CDT,就可以看到适合当前Eclipse版本的CDT,选择Update,就可以完成安装。
2.2 Install New Software 安装CDT方案1
这里首先选择Help -> Install New Software
在下拉框中可以找到:Luna - /releases/luna,当然,这个根据Eclipse的版本不同,可能会有所改变。
然后会出现下面这个列表,将Programing Languages展开
勾选下面两个,然后一路Next
2.3 Install New Software 安装CDT方案2
这里首先要到Eclipse的CDT下载页面:/cdt/downloads.php 然后找到和当期eclipse匹配的CDT下载链接,前面已经看过我,我的是Luna版:
然后会有如下的这个网页,直接将这个网址复制出来
这里在选择Help – > Install New Software
将刚才的网址粘贴进来,按照下图操作即可。
2.4 手动安装CDT
要手动安装CDT,就需要下载CDT的离线安装包,其下载地址:
/cdt/downloads.php
这里直接选择最新版本的即可,最好使用迅雷下载。
打开下载到的CDT-8.6.0.zip,将其中的features文件夹下的所有内容,全部拷贝到eclipse/features中,将plugins文件夹中的所有内容,全部拷贝到eclipse/plugins中。
重启eclipse,就完成了CDT的手动安装:
三、安装minGW
minGW的安装比较的固定和简单,可以直接参考百度教程,就不重复造轮子了:/article/455a99509c76d8a1662778f6.html
四、安装Linaro ToolChain
这里我直接进入Linaro ToolChain 的下载页面:
https:///linaro-toolchain-binaries
在网页的右下角:
点进去后是所有的Linaro ToolChain的安装包
下拉时候还有以前版本的Linaro ToolChain,可以看到当前的最新版本是GCC4.8,可以查看一下你自己所使用的ARM上的linux系统的gcc版本,最好能够一致,我这里直接使用的最新的。
这里直接选择这个exe文件,是windows的安装包,有一点需要说明,我这里之所以选择arm-linux-gnueabihf toolchain,是因为我使用的ARM上的linux系统使用的g++是这个,虽然也可以使用别的,但是最好查看一下,ARM上的编译器的类别,然后保持一致。
这个文件下载后安装,没什么好说的。
这里需要说明的是一点:确定toolchain的路径已经添加到了环境变量中,如果没有环境变量的话,请自行添加,ToolChain的默认安装,是自动添加了环境变量的,这一步自行查看一下即可。
五、搭建交叉编译开发环境
用eclipse新建一个C++的Project,由于第三步中已经安装了minGW,这里就可以看到如下选项:
然后选择高级设置:
这里可以首先看一下Linaro的安装路径中的bin文件下的东西,可以看到下面三个文件:这三个是ToolChain编译、链接、汇编用的工具。
对照上面的软件名称,将这里对应修改
然后将Binaru Parsers改为Elf Parsers
添加头文件路径
我这里使用的头文件路径为:C:\Program Files(x86)\Linaro\gcc-linaro-arm-linux-gnueabihf-4.8-2014.04\arm-linux-gnueabihf\include\c++\4.8.3
可参考此头文件路径,对应的找自己的路径
这里的头文件路径和上面的路径是一样的。
这里要添加库文件的路径:
我添加的库文件路径为:C:\Program Files (x86)\Linaro\gcc-linaro-arm-linux-gnueabihf-4.8-2014.04\lib\gcc\arm-linux-gnueabihf\4.8.3
可以参考选择
选择Finish,即可完成整个配置过程。
按Ctrl-B,就可以对工程进行编译,可以看到编译通过了,并且生成了Binary的文件,文件类型为[arm/le],这就是我们要的文件。
有一点需要说明,这里看到的是duanxx.exe,但其实这个并不是windows的可执行文件,已经是一个linux的可执行文件了,并能在windos中执行,所以这如果点击运行的话,是会报错的。
六、RSE将可执行文件传输到ARM上
这一步需要通过网络链接到ARM板子上,通过一些文件传输软件,比如filezilla,将刚才的duanxx.exe传到ARM上即可。
这里推荐另外一种解决方案,使用Eclipse插件RSE。
其下载网址为:/tm/downloads.php
其安装方式可以参考2.3和2.4,个人还是建议直接选择zip文件下载安装,也就是后面一个连接。
然后解压出来,参考2.4的操作,将features和plugins内的内容拷贝到eclipse文件夹下对应的文件夹中,重启eclipse即可。
在windos->show view -> other 中:
选择Remote Systems
会有如下的一个Local标识,这里新建一个Connection
这里的IP地址需要根据ARM板子的IP地址自行设定
这里双击一下My Home,输入登录ID和密码,就可以远程登录ARM板子了
然后Launch Terminal
就可以看到一个SSH的登录端:
然后切换到Project视图,使用Ctrl-C拷贝这个文件到MyHome的目录下
然后在Terminal中就可以看到这个拷贝进来的文件duanxx.exe。
使用chomd u+x duanxx.exe命令让其成为可执行文件
终于这个东西可以执行了
如果看exe后缀名不爽,可以考虑使用mv duanxx.exe duanxx.out将文件名更改一下,这个没有任何影响。