各种版本linux arm-linux-gcc问题解决方法

 

centos篇

1、make: gcc:命令未找到

make是gcc的编译器,执行以下安装命令

安装:

yum -y install gcc automake autoconf libtool make

安装g++:

yum install gcc gcc-c++

2、./patch-modules_3.2.0.sh: 行 00: patch: 未找到命令

Root权限:yum install patch

3、[CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter解决

是因为64位系统中安装了32位程序

解决方法:

yum install glibc.i686 

重新安装以后还有如下类系错误 再继续安装包 

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

yum install libstdc++.so.6

4、make: arm-linux-gcc:命令未找到

环境变量的设置gedit /etc/profile末尾添加:
export PATH=$PATH:/usr/local/arm/4.4.3/bin

其中/usr/local/arm/4.4.3/bin为你自己需要设置的环境变量路径。
要使其立即生效,需在终端执行:source ~/.bashrc
在终端输入 arm-linux-gcc -v 查看是否安装成功

如若还有错误可能原因如下:

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

是设置当前用户的PATH,而sudo执行make的时候,使用的是超级用户权限,那也就使用了超级用户的PATH(但是这个PATH里,并没有/usr/local/arm/4.4.3/bin)

 解决方法:

超级用户权限执行命令:gedit /etc/profile

在文件末端加上 export PATH=$PATH:/usr/local/arm/4.4.3/bin,并保存,执行source /etc/profile查看是否成功。

 

 

Ubuntu篇

一、安装ARM-Linux-GCC工具链

  只需要一句命令:

  sudo apt-get install gcc-arm-linux-gnueabi

  前提是你的Ubuntu系统版本是官网支持的最新的版本,若不是,请升级。执行以上命令即可。

 

二、使用工具链

  注意!这里不能使用 gcc 命令来召唤它。它的名字是 arm-linux-gnueabi-gcc 。如果出现 Command Not Found,请关闭Terminal,再重新打开。再不行,就变成超级用户,把它添加到 PATH 中。

  Tips:查看安装位置。

     首先你要取得超级用户权限(临时取得权限可用命令:sudo -i)

root@ql-virtual-machine:~# locate arm-linux-gnueabi-gcc
/usr/bin/arm-linux-gnueabi-gcc
/usr/bin/arm-linux-gnueabi-gcc-4.6
/usr/share/man/man1/arm-linux-gnueabi-gcc-4.6.1.gz
/usr/share/man/man1/arm-linux-gnueabi-gcc.1.gz

 

参考资料:

其一,来自Stackoverflow,关于在Ubuntu或者Window安装ARM工具链的回答。

For ARM-Linux application development the preferable choice is a Linux Host(x86) machine with a ARM toolchain installed in it. In Ubuntu Desktop machine you can use the following command to install ARM toolchain:

翻译:对于ARM-Linux应用开发,最好的选择是安装了ARM工具链的x86 Linux主机。在Ubuntu桌面电脑中,你可以使用下面的命令安装ARM工具链。

apt-get install gcc-arm-linux-gnueabi

After toolchain installation you can use the following command for cross compilation:

翻译:安装完工具链后,你要用下面的命令进行交叉编译:

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

Using this toolchain you can cross-compile your C program using Standard C library without the need of startup code. Applications can be cross-compiled at your Host Linux(x86) platform and run on Target Linux(ARM) platform.

Windows version of ARM-Linux Toolchain is also available. You can get it from here.

Linaro Developers Wiki - an open organization focused on improving Linux on ARM, will be a good reference for your work.

翻译:使用这个工具链,你可以用C标准库来交叉编译你的C程序,而无需startup code?你的程序可以在你的x86的Linux主机上交叉编译然后直接运行在Linux(ARM)平台上。 ARM-Linux工具链的windows版本也是可用的,你可以从这里获取。 Linaro Developers Wiki - 一个致力于改进ARM平台Linux的开发组织,这对于你的工作将会是个很好的参考。

 

源链接:http://stackoverflow.com/questions/14564978/compiling-a-linux-program-for-arm-architecture-running-on-a-host-os

其二,来自 askUbuntu,关于在Ubuntu上如何安装ARM工具链的回答。

.....However, if you're looking for an ARM cross-compiler, there is one pre-packaged in Ubuntu, which may be easier to get running. It's in the gcc-arm-linux-gnueabi package - to install it:

翻译:但是,如果你正在寻找一个 ARM 平台的交叉编译器,在Ubuntu中倒是有一个打包好的,它或许比较容易运行。它在 gcc-arm-linux-gnueabi 包中,你可以这样安装它:
sudo apt-get install gcc-arm-linux-gnueabi


源链接:http://askubuntu.com/questions/65630/installing-gnu-arm-toolchain

 其三,来自stackoverflow。关于如何使用及添加到PATH方法。

CodeSourcery convention is to use prefix arm-none-linux-gnueabi- for all executables, not gcc-arm-linux-gnueabi that you mention. So, standard name for CodeSourcery gcc would be arm-none-linux-gnueabi-gcc.

After you have installed CodeSourcery G++, you need to add CodeSourcery directory into your PATH.

Typically, I prefer to install CodeSourcery into directory like /opt/arm-2010q1 or something like that. If you don't know where you have installed it, you can find it using locate arm-none-linux-gnueabi-gcc, however you may need to force to update your locate db using sudo updatedb before locatewill work properly.

After you have identified where your CodeSourcery is installed, add it your PATH by editing ~/.bashrclike this:

PATH=/opt/arm-2010q1/bin:$PATH

Also, it is customary and very convenient to define

CROSS_COMPILE=arm-none-linux-gnueabi-

in your .bashrc, because with CROSS_COMPILE defined, most tools will automatically use proper compiler for ARM compilation without you doing anything.

 

源链接:http://stackoverflow.com/questions/14180185/gcc-arm-linux-gnueabi-command-not-found

 

 

————————————进展——————————————

安装交叉编译器。另注:经实测,此编译链不适合mini2440。只有官方光盘里的arm-liinux-gcc4.3编译出的程序才能在mini2440上运行。

此编译器编译后的helloworld在mini2440上总是出现unexpected } 错误。

 

原文:https://blog.csdn.net/yang626hang/article/details/50404807 

展开阅读全文

没有更多推荐了,返回首页