• 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格式文件àtarzxvf 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.1v呵呵或许就是最后一步了,其实对于大多数筒子来说不是的,执行之后或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


  • 相关阅读:
    LeetCode 1275. 找出井字棋的获胜者 Find Winner on a Tic Tac Toe Game
    LeetCode 307. 区域和检索
    LeetCode 1271 十六进制魔术数字 Hexspeak
    秋实大哥与花 线段树模板
    AcWing 835. Trie字符串统计
    Leetcode 216. 组合总和 III
    Mybatis 示例之 复杂(complex)属性(property)
    Mybatis 示例之 复杂(complex)属性(property)
    Mybatis 高级结果映射 ResultMap Association Collection
    Mybatis 高级结果映射 ResultMap Association Collection
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3191999.html
Copyright © 2020-2023  润新知