CentOS安装arm-linux-gcc交叉编译器

(注:首先需要明确需要安装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上运行

Linux系统中安装arm-linux-gcc编译通常是为了编译针对ARM架构的程序。以下是安装arm-linux-gcc编译的一般步骤: 1. **使用发行版的包管理安装**: 大多数Linux发行版都提供了arm-linux-gcc的软件包。例如,在基于Debian的系统(如Ubuntu)中,你可以使用以下命令安装: ```bash sudo apt-get update sudo apt-get install gcc-arm-linux-gnueabi ``` 或者对于32位ARM架构: ```bash sudo apt-get install gcc-arm-linux-gnueabihf ``` 在基于Red Hat的系统(如Fedora或CentOS)中,你可能需要使用`yum`或`dnf`命令,具体命令取决于你的系统版本。 2. **从源代码编译**: 如果你的Linux系统中没有预编译的包或者你需要特定版本的编译,你可以从源代码编译arm-linux-gcc。这通常包括下载工具链的源代码,然后使用`make`命令编译和安装。 ```bash wget http://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz tar -xf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz sudo mkdir -p /opt/cross sudo mv gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu /opt/cross sudo ln -s /opt/cross/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin/* /usr/bin/ ``` 请注意,上述链接和版本仅为示例,你需要访问[GNU Arm Embedded Toolchain](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads)下载最新或你需要的版本。 3. **环境变量设置**: 安装完成后,可能需要设置环境变量,比如`PATH`,以便在任何目录下使用arm-linux-gcc。可以通过修改`~/.bashrc`或`~/.profile`文件来实现,添加如下行: ```bash export PATH=/opt/cross/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin:$PATH ``` 请根据实际安装路径修改上述路径。 完成上述步骤后,你可以通过运行`arm-linux-gcc -v`来验证编译是否正确安装
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值