阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Ubuntu12.04嵌入式交叉编译环境搭建

30次阅读
没有评论

共计 1883 个字符,预计需要花费 5 分钟才能阅读完成。

导读在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译,这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码,而这种工具就是交叉编译器(cross compiler)。
安装环境
  1. Linux 版本:Ubuntu 12.04
  2. 内核版本:Linux 3.5.0
  3. 交叉编译器版本:arm-linux-gcc-4.4.3
安装前的絮叨

首先简单介绍一下,所谓的搭建交叉编译环境,即安装、配置交叉编译工具链。在该环境下编译出嵌入式 Linux 系统所需的操作系统、应用程序等,然后再上传到目标机上。

交叉编译工具链是为了编译、链接、处理和调试跨平台体系结构的程序代码。对于交叉开发的工具链来说,在文件名称上加了一个前缀,用来区别本地的工具链。例如,arm-linux- 表示是对 arm 的交叉编译工具链;arm-linux-gcc 表示是使用 gcc 的编译器。除了体系结构相关的编译选项以外,其使用方法与 Linux 主机上的 gcc 相同,所以 Linux 编程技术对于嵌入式同样适用。不过,并不是任何一个版本拿来都能用,各种软件包往往存在版本匹配问题。例如,编译内核时需要使用 arm-linux-gcc-4.3.3 版本的交叉编译工具链,而使用 arm-linux-gcc-3.4.1 的交叉编译工具链,则会导致编译失败。

那么 gcc 和 arm-linux-gcc 的区别是什么呢?区别就是 gcc 是 linux 下的 C 语言编译器,编译出来的程序在本地执行,而 arm-linux-gcc 用来在 linux 下跨平台的 C 语言编译器,编译出来的程序在目标机 (如 ARM 平台) 上执行,嵌入式开发应使用嵌入式交叉编译工具链。

安装步骤
  1. 将压缩包 arm-linux-gcc-4.4.3.tar.gz 存放在一个目录下,这个目录就是你等会解压缩的目录,以后这个目录就不能随便删掉了,我的存放路径是 /home/song/software, 如下图,记住这个路径,等会还会用到。
  2. Ubuntu12.04 嵌入式交叉编译环境搭建

  3. 使用 tar 命令:tar zxvf arm-gcc-4.4.3.tar.gz 将 software 文件夹下的 arm-linux-gcc-4.4.3.tar.gz 解压缩安装到当前目录下如下图
  4. Ubuntu12.04 嵌入式交叉编译环境搭建
    通过下图可以看到解压成功了,并且解压后的文件存放在了 /home/song/software/opt/FriendlyARM/toolschain/4.4.3 文件夹下,如下图所示,这个存放路径可得记住,如下图
    Ubuntu12.04 嵌入式交叉编译环境搭建

  5. 接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量 PATH 中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vim /etc/profile 编辑 profile 文件,添加环境变量。
  6. Ubuntu12.04 嵌入式交叉编译环境搭建
    在 profile 中最后一行添加:export PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin 这个路径就是那个 bin 目录所在的路径,可能你的不一样,按照你实际的目录填就可以了,如下图 32 行
    Ubuntu12.04 嵌入式交叉编译环境搭建
    编写完保存就好了

  7. 使用命令:source /etc/profile 使环境变量生效
  8. 在终端上输入命令 arm-linux 再按 Tab 键,可以看到下图,说明环境变量设置成功了
  9. Ubuntu12.04 嵌入式交叉编译环境搭建

  10. 使用命令:arm-linux-gcc -v 会出现下面的错误提示:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: exec: /home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found
  11. Ubuntu12.04 嵌入式交叉编译环境搭建
    意思是出现这种问题的原因是由于 Ubuntu12.04 用的是 64 位的,解决方法就是使用命令:sudo apt-get install ia32-libs 装一些 32 位的库。
    Ubuntu12.04 嵌入式交叉编译环境搭建

  12. 待安装完 32 位的库之后,再使用命令:arm-linux-gcc -v,这一次就成功了,如下图
  13. Ubuntu12.04 嵌入式交叉编译环境搭建

  14. 验证,编译一个 hello.c 文件
  15. Ubuntu12.04 嵌入式交叉编译环境搭建
    使用命令:arm-linux-gcc hello.c -o hello 看是否编译成功
    Ubuntu12.04 嵌入式交叉编译环境搭建
    可见成功生成了二进制文件。

总结

其实在安装过程中,会出现各种各样的错误,一般就是库文件安装不完整,大家可以把错误信息直接复制,到网上搜索一下,一般都能解决,这里希望大家在学习 Linux 时多一点耐心。

阿里云 2 核 2G 服务器 3M 带宽 61 元 1 年,有高配

腾讯云新客低至 82 元 / 年,老客户 99 元 / 年

代金券:在阿里云专用满减优惠券

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-24发表,共计1883字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中