(注:首先需要明确需要安装centos系统的位数,即是32位的还是64位的。)

1、下载并解压文件:下载arm-linux-gcc-4.4.3.tgz到任意的目录下,进入这个文件夹

输入命令:# tar xvzf arm-linux-gcc-4.4.3.tgz –C /  【解压文件到 /opt/Friendlyarm/4.4.3 目录】

注意:C后面有个空格,并且C是大写的,它是英文单词“Change”的第一个字母,

在此是改变目录的意思。

在/usr/local/下建立arm的文件夹

输入命令:# mkdir arm  【新建 /usr/local/arm/ 目录】

# chmod 777 arm  【修改此文件夹的权限 ,可用 命令 # cd -ll 查看】

输入命令:# cp -r /opt/Friendlyarm/4.4.3 /usr/local/arm/ 【然后把opt下的4.4.3目录复制到/usr/local下】

2、修改环境变量,把交叉编译器的路径加入到PATH。

方法一:修改/etc/bash.bashrc文件(此文件只对当前用户适用)

输入命令:# gedit /etc/bash.bashrc

在最后加上    export PATH=$PATH:/usr/local/arm/4.4.3/bin

方法二(推荐):修改/etc/profile文件(此文件属于系统级别的环境变量,设置在里面的东西对所有用户适用):

输入命令:# vim /etc/profile

增加路径设置,在末尾添加如下,保存/etc/profile文件:

export PATH=$PATH:/usr/local/arm/4.4.3/bin

方法三:修改/etc/environm:ent文件

输入命令:# gedit /etc/environment

原文件应为  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/games“

将其改为      PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin"

保存退出即可

关于路径设置问题,可以 用终端逐步寻找,比如 在 终端下cd /usr/local/用TAB键 一直找到/bin

关于环境变量问题:

环境变量是什么?例如path,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

如果上面不加入环境变量,要运行arm-linux-gcc这个程序,则每次都要把arm-linux-gcc的完整路径写出来。/usr/local/arm/4.4.3/bin arm-linux-gcc文件名-o输出文件名

这样非常的麻烦,所以加到path里面,让电脑知道这个程序在哪里。

3. 立即使新的环境变量生效,不用重启电脑:

对应方法一:

输入命令:# source /root/.bashrc

对应方法二:

输入命令:# source /etc/profile

方法三立即生效

4. 检查是否将路径加入到PATH:

输入命令:#echo $PATH

显示内容/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.4.3/bin说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。

5.测试是否安装成功

输入命令:#arm-linux-gcc -v

若centos为32位系统则会直接安装成功,则会显示如下信息:

Using built-in specs.

Target: arm-none-linux-gnueabi

Configured with: /opt/FriendlyARM/mini2440/build-toolschain/working/src/gcc-4.4.3/configure --build=i386-build_redhat-linux-gnu --host=i386-build_redhat-linux-gnu --target=arm-none-linux-gnueabi --prefix=/opt/FriendlyARM/toolschain/4.4.3 --with-sysroot=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --enable-languages=c,c++ --disable-multilib --with-arch=armv4t --with-cpu=arm920t --with-tune=arm920t --with-float=soft --with-pkgversion=ctng-1.6.1 --disable-sjlj-exceptions --enable-__cxa_atexit --with-gmp=/opt/FriendlyARM/toolschain/4.4.3 --with-mpfr=/opt/FriendlyARM/toolschain/4.4.3 --with-ppl=/opt/FriendlyARM/toolschain/4.4.3 --with-cloog=/opt/FriendlyARM/toolschain/4.4.3 --with-mpc=/opt/FriendlyARM/toolschain/4.4.3 --with-local-prefix=/opt/FriendlyARM/toolschain/4.4.3/arm-none-linux-gnueabi//sys-root --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-c99 --enable-long-long --enable-target-optspace

Thread model: posix

gcc version 4.4.3 (ctng-1.6.1)

若centos系统为64位时,则会提示一下内容

/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory

表示没有安装成功,此时则需要做如下操作:

1、在64系统里执行32位程序如果出现/lib/ld-linux.so.2:

bad ELF interpreter: No such file or directory,安装下glic即可

则需要

输入命令:# yum install glibc.i686

【 www.2cto.com  】

2、如果出现error while loading shared libraries: libz.so.1:

cannot open shared object file: No such file or directory

则需要

输入命令:#

yum install zlib.i686

3、如果出现/libexec/gcc/arm-none-linux-gnueabi/4.4.3/cc1:

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

则需要

输入命令:#

yum -y install libstdc*

另外若当有缺少共享库的报错:

error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

解决办法:

1、输入命令:# yum whatprovides libstdc++.so.6

然后会提示哪个安装包有这个库文件如下:

[root@localhost ~]# yum whatprovides libstdc++.so.6

Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto, refresh-packagekit, security, tmprepo, verify,

: versionlock

Loading support for CentOS kernel ABI

Loading mirror speeds from cached hostfile

* base: centos.ustc.edu.cn

* centosplus: centos.ustc.edu.cn

* contrib: centos.ustc.edu.cn

* extras: centos.ustc.edu.cn

* updates: centos.ustc.edu.cn

libstdc++-4.4.7-3.el6.i686 : GNU Standard C++ Library

Repo        : base

Matched from:

Other      : libstdc++.so.6

2、然后执行:

输入命令:# yum install libstdc++-4.4.7-3.el6.i686

搞定!

6.编译Hello World程序,测试交叉工具链

写下下面的Hello World程序,保存为hello.c

#include “stdio.h”

int main()

{

printf("Hello World!\n");

return 0;

}

执行下面的命令:

$ arm-linux-gcc hello.c -o hello

ls下

看到hello执行文件

$ file hello在hello的目录下

可以看到hello: ELF 32-bit LSB executable,ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, not stripped

这样说明可以在ARM上运行,此时不能在pc上运行

centos arm linux gcc,CentOS安装arm-linux-gcc交叉编译器相关推荐

  1. 在centos上通过yum直接安装最新版gcc和开发工具

    本来我把gcc 8, g++ 8, cmake 3, ninja,glibc,gnu make 和GNU 'binutils' 全部都编译安装了一遍: 先安装 gcc 8, g++ 8, cmake ...

  2. mint linux更新内核,如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核

    原标题:如何在Ubuntu/Linux Mint中安装最新Linux 5.2.5内核 Linux 5.2的Ubuntu主线内核包最终可以在32位和64位操作系统中下载和安装. 由于构建失败,Linux ...

  3. 【Linux】嵌入式Linux系统的移植(上篇:交叉编译器、连接方式)

    嵌入式Linux系统移植 嵌入式Linux系统移植是进行Linux驱动开发的基础,如果连Linux系统移植都完成不了,那就更不用说驱动开发了.因此,Linux系统移植至关重要. 嵌入式Linux系统的 ...

  4. 【linux系统如何安装arm交叉编译工具链】

    文章目录 前言 一.arm交叉编译器介绍 命名规则 具体编译器 二.Arm GNU Toolchain安装 总结 前言 本文简要介绍arm交叉编译器及工具链的安装方法 一.arm交叉编译器介绍 命名规 ...

  5. linux通过yum安装vim,linux/centos系统如何使用yum安装vi/vim?

    linux/centos系统如何使用yum安装vi/vim? yum安装vim最简单的命令, yum -y install vim* 然后就可以使用vi命令了. 网上的文章: 要使用vim, 使用yu ...

  6. 在CentOS/Debian/Ubuntu上编译安装最新版 GCC 8 , cmake 3 和ninja

    CentOS不像Debian/Ubuntu,不能直接从官方库中安装最新版的gcc/g++,只能源码编译安装. gcc下载地址:Index of /gnu/gcc 我选择了最新版本 gcc-8.3.0, ...

  7. 看inux系统中的c语言编译器,Linux系统自定义安装C语言gcc编译器图文详细教程

    有些Linux系统自带gcc编译器,有些则不带,比如CentOS版本的系统就没有gcc,我们在安装一些C语言开发的软件时,就没有办法进行编译,那就需要我们手动进行安装gcc,手动安装较麻烦,依赖了一些 ...

  8. Linux中如何安装特定的gcc版本

    Linux允许多个版本的gcc共存,当你需要安装多个版本的gcc的时候,比如同时安装gcc-7和gcc-8,你可以通过 update-alternatives 来重定位你想使用的gcc版本. sudo ...

  9. linux下redis安装教程,linux下安装配置redis图文详解

    在linux系统下安装redis的详细步骤如下: 1. 首先下载一个redis安装包,下载地址:https://www.daixiaorui.com/source/13.html .也可以去官网下载最 ...

  10. linux系统下安装pip3,linux下安装python3和对应的pip环境教程详解

    linux下安装python3和对应的pip环境教程详解 1.下载python3.6的安装包: 2.解压后,进入到解压目录下,执行如下命令,将python3.6进行编译,如下是将python的环境编译 ...

最新文章

  1. Ajax Upload多文件上传插件翻译及中文演示
  2. [JVM]常用JVM工具使用
  3. CentOS中安装的Gitlab忘记管理员密码怎样重置密码
  4. [Android1.5]打开多个Activity,返回到第一个Activity的问题
  5. 模块降额设计_模块电源需要注意的四个点
  6. vue_cli全局变量使用
  7. TCP协议及TCP正常连接与断开
  8. 一个软件工作者给前女友的最后一封信
  9. 准备写一本协议方面的书,谁赞成,谁反对?
  10. java socket plc 通信_三菱两个FX5U 通信和程序
  11. ubuntu 1610本地安装wordpress
  12. 驱动人生官网服务器维护,驱动人生在线检测服务 驱动检测更新更加方便
  13. Java:等额本息还款计算
  14. android 相对布局(RelativeLayout)
  15. Android 计时器
  16. 教你在3GPP官网下载协议
  17. 谷歌浏览器报错“您的连接不是私密连接攻击者可能会试图从 xxx 窃取您的信息(例如:密码、通讯内容或信用卡信息)“
  18. IE清除默认的三角形
  19. matlab .fda文件_A. FDA现有的上市后角色
  20. Vue子组件的显示与隐藏

热门文章

  1. 初学 Delphi 嵌入汇编[29] - 寄存器所能接受的数值范围
  2. python帮助文档在哪_python文档在哪里
  3. Fiddler中response乱码的解决方案
  4. access实例_西门子PLC1200组态王跟Access数据库-⑥组态王变量
  5. CBT的完整形式是什么?
  6. Python字符串| isdecimal()方法与示例
  7. aptitude 命令_C-命令行参数Aptitude问题与解答
  8. python 打印列表元素_Python程序以不同方式打印列表元素
  9. qt没有mysql文件夹_qt5-qt目录下没有mysql文件夹
  10. c语言goto语句用法_C语言32个关键字9种控制语句34种运算符整理