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 ...
随机推荐
- TOMCAT的域名配置
链接地址:http://blog.163.com/skk1987@126/blog/static/29303413201051383548377/ 现在很多的公司的网站都是用tomcat作为应用服务区 ...
- 功能间(两个form)数据交互的编程方法
功能间数据交互的编程方法 现在框架具有在两个打开的功能之间进行通讯的机制.通讯是指,一个功能调用另外一个功能的方法,或者传递一些数据,并得到返回结果.比如处置单打开结算单,结算单保存后,将结算单号反填 ...
- 在不同编译环境中如何使用sleep()函数
今天在学习有关时间函数时,想让程序暂时挂起,一段时间后在继续执行! 用到了系统函数sleep(): 在vc下sleep函数是以毫秒为单位,如果想让其停留3秒,需要这样做 sleep(3*1000); ...
- C语言,数据类型
#include <stdio.h> void f0(void) { printf("in linux:\n"); printf("sizeof(char) ...
- CF 224 B Array
给你n个数,求[l, r] 的一段数,a[l] - a[r] 一共含有k个不相同的数,且sum a[l, r] 最小的那一段. 用队列维护当前数段中不同元素的个数即可. #include<ios ...
- 怎样从 Google Play 下载 Android 程序到电脑上
想必非常多朋友也有须要通过电脑下载Google Play的apk到电脑端的时候,事实上非常easy,推荐一个站点:APK Downloader APK Downloader 是一个能直接从网页下载Go ...
- HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛)
HDU 4046 Panda (ACM ICPC 2011北京赛区网络赛) Panda Time Limit: 10000/4000 MS (Java/Others) Memory Limit: ...
- poj 3263 Tallest Cow
一个压了很久的题目,确实很难想,看了别人的做法后总算明白了. 首先要明白一点,因为题目说明了不会有矛盾,所以题目给出来的区间是不能相交的,否则是矛盾的.(原因自己想) 然后既然区间只能是包含的,就很明 ...
- How to find variable is empty in shell script
(1). var="" if [ -n "$var" ]; then echo "not empty" else echo ...
- 怎样在ios开发中设置tableview的cell颜色
//方法一: cell .contentView .backgroundColor = [ UIColor redColor ]; //方法二: UITableViewCell *cell = [ta ...