ubuntu12.10下arm-linux-gcc交叉编译环境的搭建
交叉编译环境搭建的原因:通俗上讲,因为嵌入式系统可用资源比较少:几十M的ARM 二三百M的flash相对我们的pc机来说资源真的没法比。所以,为了解决这种局面就将PC机等作为主机,搭建开发环境,进行编译,连接等工作,将编译好的可执行文件bin,image,等烧录到目标机上运行。所以就有了交叉编译环境这一说。本人新手,经过google和实际的努力搭建起了 arm-linux-gcc-3.4.1编译环境。基本过程如下,希望对初学者有所帮助。
经过昨天下午到现在的搜索,google,终于将arm-linux-gcc交叉编译开发环境搭建起来。写篇日志记录一下整个的过程。
1、昨天开始对着开发手册进行交叉编译环境的搭建,当然了第一次自然会遭受到N个打击。因为是新手遇到问题的第一反应自然是google,毕竟去大脑里搜索经验是白搭的,大脑里记忆存储几乎为零。
2、网上各种搭建方法,大体上也都差不多,对于很多细节各不相同,当然了各种尝试都试过了。依然不成功。
3、对于搭建环境过程中的反思-依然不熟悉linux目录,大多数的方法都是讲arm-linux-gcc-x.x.x.tar.gz拷贝到自己喜欢的目录下执行解压。比如说home/work等自己建立的目录。这些都无所谓。执行的解压命令对于tar.gz格式文件àtar–zxvf arm-linux-gcc-3.4.1.tar.gz(本人的实际操作).从实际上来说解压过程并不复杂,也不麻烦。解压完毕自然能在你当前文件夹底下看到解压文件。本人实际操作—> /home/work/usr/local/arm/3.4.1
4、然后网上基本上都是执行cp命令将arm文件夹copy到/usr/local中去。其实第一次copy的时候我还郁闷呢。在我建立的目录底下就已经是这样了怎么还需要拷贝呢。其实后来我才明白。我是混淆了绝对路径和相对路径的问题。如果您执行 #cd / 那么您就回到了根目录底下。”/”代表根目录的意思,那么 #cd usr/local/ #cp –rv arm /usr/local 这两条命令就会将/home/work/usr/local/arm这个arm文件夹copy到/usr/local/中去。是拷贝到了根目录的usr/local/下。 我的错误之处。我执行cd命令的时候由于忽略了最前边”/”的存在当成了相对路径。 首先错误的执行了 #cd /usr/local此时我以为我进入的是home/usr/local/下(注意此时home前边没有/)实际上我是进入了/usr/local/所以执行copy的时候就会报错,如果此时弄明白了,那么接下来的环境变量的添加也就很容易了。
5、环境变量的添加à网上大多是执行# vim/etc/bash.bashrc或者是# gedit /etc/bash.bashrc.别怪我多啰嗦一句,这也是进入了根目录下的etc文件夹下的bash.bashrc文件。我的机器不能执行vim(我也不知道什么原因,烦劳知道的朋友告诉声)。所以我就使用了vi命令进行修改。具体过程如下à# vi/etc/bash.bashrc 打开文件然后使用vi命令Esc 确保进入命令模式,然后按G进入文件尾,然后按$进入行尾,然后按o 添加尾行,写入命令à
exportPATH=$PATH:/usr/local/arm/3.4.1/bin
exportPATH 了解bash的对于这两句就so easy了。添加变量,在环境变量的末尾添加上解压路径(额对于不太熟悉bash 和vi的童鞋请自己去掌握à针对新手)exportà用来定义一个环境变量。。。
6、环境变量添加完毕,接下来网上的多数资料基本上都是说运行#source /root/.bashrc那么就不用重启了。这一点我倒是赞同的,毕竟我也没有在安装完毕后重启机子,运行命令后确实能解决问题,然后运行 #echo $PATH 进行环境变量的查看,由于我们第5条的写入方法export PATH=$PATH:………这就表明了我们添加的环境变量时添加到了PATH的后边,所以虽然有很多usr/local/bin但是最尾部的才是我们自己添加进去的。 如果看到了我们的变量。那么运行7、
7、#arm-linux-gcc-3.4.1–v呵呵或许就是最后一步了,其实对于大多数筒子来说不是的,执行之后或terminal会提示你 No file or directory之类的话,总而言之提示你找不到arm-linux-gcc的文件或者目录。好纠结额,按照网上大多数的介绍做了实际效果却没有安装成功。这是怎么回事呢。嗯这个问题也纠结了我很久。表示我也还没解决这个问题。但是我知道这大概是由什么引起的。此时请你想一下你的ubuntu是不是64位的系统?如果是的话那么就对了。因为ubuntu64-32兼容性不是很好,所以你是缺少32位运行库,那么网上的介绍是这样的运行#sudo apt-get install ia32-libs进行升级32位兼容库。如果您的网速还可以,人品也还可以,那么就会自动下载安装库,问题也就解决了。如果不成功那么请找方法安装兼容库去吧,此时问题就不是您会不会安装交叉编译环境了,不好意思。由于我的机子上有win7 64位系统,ubuntu12.10 64位系统的双系统,结果我也悲剧了,倒腾了半天,突然想起来,win7里边我有vmware的,里边有个ubuntu12.10和13.04去看看哪个是32位的。幸运的狠我的vmware12.10是32位的
8、顺便提醒一下对于vmware不相应u盘的问题:那么请à我的电脑à右键à管理à服务和应用程序à服务à找到相关VMWARE的相关项,启动起来里边有关于usb 服务的请启动,vmware就会响应u盘。
9、这基本上就是我安装arm-linux-gcc的简略过程。其实网上多数的教程也是可用的,只是像我这样的新手对新事物了解的不通透,而他们介绍的有的地方太简略,导致卡在一个地方就过不去了。现在再去让我安装交叉编译环境丝毫不用去看教程了。熟能生巧。就是这样的。
2013-7-1516:25:40
ubuntu12.10下arm-linux-gcc交叉编译环境的搭建的更多相关文章
- Linux嵌入式交叉编译环境 的搭建【转】
转自:http://blog.csdn.net/woaixiaozhe/article/details/7395435 1. 安装标准的C开发环境,由于Linux安装默认是不安装的,所以需要先安装一下 ...
- Ubuntu12.4 64位 安装 arm linux gcc 4.3.2
一.下载arm linux gcc 4.3.2 http://pan.baidu.com/share/link?shareid=1575352696&uk=2754759285&fid ...
- 【Linux学习】Ubuntu下嵌入式交叉编译环境arm-linux-gcc搭建
(1)首先选择一个路径用来存放arm-linux-gcc.我选用的是/home/book,并在以下建立一个目录arm-linux-gcc. (2)利用cp EABI-4.3.3_Emdedsky_20 ...
- Ubuntu12.04嵌入式交叉编译环境arm-linu-gcc搭建过程,图解
转载:王文松的博客Ubuntu12.04嵌入式交叉编译环境arm-linu-gcc搭建过程,图解 安装环境 Linux版本:Ubuntu 12.04 内核版本:Linux 3.5.0 ...
- ARM-Linux Gcc 交叉编译环境搭建
1 NFS网络文件系统搭建 测试宿主机与目标板ping通 目标板上某个文件夹(例如mnt)挂载到宿主机(192.168.1.111)的/home/nfs_dir文件夹下 mount –t nfs –o ...
- ubuntu12.10下OpenFoam的编译
最近在ubuntu12.10下编译OpenFoam,遇到一些问题,小记一下. 首先到官网下载源码包(我这里下载的是OpenFOAM-2.3.0.tgz,ThirdParty-2.3.0.tgz). 1 ...
- SAAS云平台搭建札记: (二) Linux Ubutu下.Net Core整套运行环境的搭建
最近做的项目,由于预算有限,公司决定不采购Windows服务器,而采购基于Linux的服务器. 一般的VPS服务器,如果使用Windows系统,那么Windows Server2012\2016安装好 ...
- 在Windows下配置Linux远程开发环境
在Windows下配置Linux远程开发环境 欢迎光临我的个人博客 https://source.chens.life/Configure-Linux-remote-development-envir ...
- Linux学习心得之 Linux下命令行Android开发环境的搭建
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...
随机推荐
- 对背包问题(Knapsack Problem)的算法探究
对背包问题(Knapsack Problem)的算法探究 至繁归于至简,这次自己仍然用尽可能易理解和阅读的解决方式. 1.问题说明: 假设有一个背包的负重最多可达8公斤,而希望在背包中装入负重范围内可 ...
- 02-UIKit控件、MVC
目录: 一.控件使用 二.动态类型和静态类型 三.MVC 四.UIAlertView对话框 回到顶部 一.控件使用 1 事件源,事件处理方法有一个参数传进来,那个参数就是触发这个事件的时间源. UIS ...
- 饭卡(HDOJ2546)
饭卡 Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...
- textarea内容有换行时存入数据库丢失问题的解决 (转载)
http://blog.csdn.net/zhang_j_h/article/details/44563167 存入: function GetInputData(id, cmd) { var pos ...
- vbox要手动mount才能挂载windows的共享文件夹(好用,不用安装samba了)
mount -t vboxsf BaiduShare /mnt/bdshare/ 我按照这篇文章成功: http://www.wuji8.com/meta/448016166.html 其它参考: h ...
- 如何查看VS中预设的路径变量
类似"$(VCInstallDir)"之类的变量查询方法为:打开VS命令行提示窗口,输入 Set 命令. VS中“Tool” - “Visual Studio Command Pr ...
- Windows 7 taskbar and startmenu pin
原文 Windows 7 taskbar and startmenu pin 在Windows 7上,用户可以将自己喜欢的软件“钉”在开始菜单或任务栏,使用起来更加方便.但有时候我们也需要用程序来将这 ...
- 远程调用内核接口(remote call kernel)
-------------------------------------------------------------------------------- 标题: 远程调用内核接口(remote ...
- 老斜两宗事-七层代理模式还是IP层VPN
1.七层代理模式还是IP层VPN 非常多人会问,我究竟是使用代理模式呢,还是使用VPN模式,假设我想数据在中间不安全的链路上实现加密保护的话.这个问题有一个背景.那就是,你想保护你的数据,能够使用VP ...
- 【模式识别】Boosting
Boosting简单介绍 分类中通常使用将多个弱分类器组合成强分类器进行分类的方法,统称为集成分类方法(Ensemble Method).比較简单的如在Boosting之前出现Bagging的方法,首 ...