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 ...
随机推荐
- C语言顺序栈实现
/*数序栈*/ #include<stdio.h> #include<stdlib.h> #include<math.h> #define SElemType ch ...
- HDOJ 4007 Dave【最大覆盖集】
Dave Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65768/65768 K (Java/Others)Total Submis ...
- 10-UIKit(UIDatePicker、UIPickerView、UIWebView、Storyboard)
目录: 1. UIDatePicker 2. UIPickerView 3. UIPickerView多列关联 4. UIWebView 5. Storyboard(故事板) 回到顶部 1. UIDa ...
- Robot Framework与Web界面自动化测试学习笔记:定位到新窗口
在页面操作中,有时会需要打开新的窗口(新的网页不在当前窗口显示,而是在新的tab页显示), 比如利用 window.open("newurl") 或者 <a href=& ...
- Gora_百度百科
Gora_百度百科 Gora 编辑 目录 1什么是Apache Gora 2为什么要使用Apache Gora 3Gora的一个源代 ...
- [034] 微信公众帐号开发教程第10篇-解析接口中的消息创建时间CreateTime(转)
从微信公众平台的消息接口指南中能够看出,每种类型的消息定义中,都包括有CreateTime參数,它表示消息的创建时间,例如以下图所看到的: 上图是消息接口指南中4.1-文本消息的定义.注意Create ...
- 浅谈初次搭建nginx+php+mysql遇到的问题
先说明下我linux上的环境: nginx + php(5.5.10) + mysql 開始的源代码已经在本地写好,并调试成功(本地的环境是用XAMPP的默认配置).在把代码上传至linux上时,出现 ...
- SPField的GetValidatedString方法没有被调用
当我们开发自定义类型的Field时,可能会用到GetValidatedString这个方法. 但是有时候这个方法并没被调用 原因是: 当Field的Value为null时,该方法不会被调用 解决办法: ...
- 使用内容提供者和xml备份联系人
1.通过内容提供者获取联系人信息 package com.ithaimazyh.readcontact; import java.util.ArrayList; import java.util.Li ...
- 极限挑战—C#+ODP 100万条数据导入Oracle数据库仅用不到1秒
链接地址:http://www.cnblogs.com/armyfai/p/4646213.html 要:在这里我们将看到的是C#中利用ODP实现在Oracle数据库中瞬间导入百万级数据,这对快速批量 ...