搭建完整的arm-linux-gcc等交叉编译环境

https://www.cnblogs.com/uestc-mm/p/6656325.html

安装环境

       Linux版本:Ubuntu 12.04    内核版本:Linux 3.5.0   交叉编译器版本: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、使用tar命令:tar zxvf arm-gcc-4.4.3.tar.gz将software文件夹下的arm-linux-gcc-4.4.3.tar.gz解压缩安装到当前目录下如下图

    

    通过下图可以看到解压成功了,并且解压后的文件存放在了/home/song/software/opt/FriendlyARM/toolschain/4.4.3文件夹下,如下图所示,这个存放路径可得记住,如下图

   

3、接下来配置系统环境变量,把交叉编译工具链的路径添加到环境变量PATH中去,这样就可以在任何目录下使用这些工具。记下上一步中的安装路径,使用命令:vim /etc/profile 编辑profile文件,添加环境变量。

      

   在profile中最后一行添加:  export PATH=$PATH:/home/song/software/opt/FriendlyARM/toolschain/4.4.3/bin  这个路径就是那个bin目录所在的路径,可能你的不一样,按照你实际的目录填就可以了,如下图32行

   

   编写完保存就好了

4、使用命令:source /etc/profile 使环境变量生效

5、在终端上输入命令  arm-linux 再按Tab键,可以看到下图,说明环境变量设置成功了

   

6、使用命令: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

   

  说是出现这种问题的原因是由于Ubuntu12.04用的是64位的,解决方法就是使用命令:sudo apt-get install ia32-libs 装一些32位的库

   

   如果你使用的是ubuntu16.04的版本也会出现6当中的这种问题,并且使用sudo apt-get install ia32-libs不能解决此问题问题如下所示(2017.9.8):

   意思是说16.04版本的ubuntu已经不使用ia32-libs库了可以使用其他两个代替。

sudo apt-get install lib32ncurses5 lib32z1

   这样我们就解决了arm-linux-gcc编译器的问题。

7、待安装完32位的库之后,再使用命令:arm-linux-gcc -v,这一次就成功了,如下图

   

8、验证,编译一个hello.c文件

  

  使用命令:arm-linux-gcc hello.c -o hello 看是否编译成功

  

  可见成功生成了二进制文件。   

  备注2017.9.8(还是编译的问题,在编译过程中出现了如下的错误,ubuntu的版本是16.04的版本)

  

  上述结果提示说缺少了libstdc++的库,这里我们使用命令来安装就好了:

sudo apt-get install lib32stdc++6

  安装完之后我们就能正确的使用arm-linux-gcc的交叉编译器了

  

  转载链接:http://blog.csdn.net/mybelief321/article/details/9076583

  这里是直接使用crosstools工具包的方式来搭建的交叉编译环境(还未测试):http://www.voidcn.com/article/p-hziyngwg-ka.html

 

  • 13
    点赞
  • 78
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要Ubuntu中编译arm-linux-gnueabihf-gcc,你需要搭建交叉编译环境。首先,你需要在PC端下载编译工具。然后,将交叉编译工具上传至Ubuntu中。你可以从官方网站下载arm-linux-gnueabihf-gcc交叉编译器有两个版本:arm-linux-gnueabi和arm-linux-gnueabihf。这两个版本的区别在于目标平台的硬件浮点支持。选择合适的交叉编译器后,将下载的gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz文件拷贝到arm目录中。使用以下命令拷贝文件:sudo cp gcc-linaro-5.5.0-2017.10-x86_64_arm-linux-gnueabihf.tar.xz /usr/local/arm/ -f。完成这些步骤后,你就可以使用arm-linux-gnueabihf-gcc进行编译了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [arm-linux-gcc交叉编译环境搭建](https://blog.csdn.net/weixin_42892101/article/details/90370688)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【Linux-ARM】安装 arm-linux-gnueabihf 交叉编译openssl-arm静态库与动态库](https://blog.csdn.net/hanhui22/article/details/125237010)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值