煞费苦心翻阅许多材料才看到这个比较有用的,昨夜花了几个钟装4.3.2版别的一向不成功,今日无意在论坛看到这个东西试了一下,仍是得花了两三个钟,着实累,可是成功了。听安慰的。
以下装arm-linux-gcc4.4.3这个穿插编译器是参阅authorowen这位朋友,以下是该位朋友的博文:
参阅了前人的效果,结合自己实践。
1 下载arm-linux-gcc-4.4.3.tgz到恣意的目录下,进入这个文件夹
$ sudo tar xvzf arm-linux-gcc-4.4.3.tgz –C /
留意:C 后边有个空格,而且 C 是大写的,它是英文单词“Change”的榜首个字母,在此是改动目录的意思。
履行该指令,将把 arm-linux-gcc 装置到/opt/Friendlyarm/4.4.3 目录。
在/usr/local/下树立 arm的文件夹
mkdir arm
chmod 777 arm
然后把 opt下的4.4.3 目录复制到 /usr/local/arm下
sudo cp -r /opt/Friendlyarm/4.4.3
2. 修正环境变量,把穿插编译器的途径参加到PATH。
网上许多修正环境变量的办法,很杂。有 redhat 上面的,federo(是这么写的吧)。下面总共三种办法,我都在UBUNTU11.10上试过,可行。
办法一:修正/etc/bash.bashrc文件(此文件只对当时用户适用)
$sudo gedit /etc/bash.bashrc(首都哥用的便是榜首种办法,一开始失利,后边不知道怎样的也就成功了)
在最终加上export PATH=$PATH:/usr/local/arm/4.4.3/bin
办法二:修正/etc/profile文件(此文件归于体系等级的环境变量,设置在里边的东西对一切用户适用):
$sudo gedit /etc/profile
增加途径设置,在结尾增加如下,保存/etc/profile文件:
export PATH=$PATH:/usr/local/arm/4.4.3/bin
(没有用过这种)
办法三:修正/etc/environment文件
$sudo gedit /etc/environment
原文件应为PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin: /usr/games“
(有照着操作一遍,后边又给复原了,可是再回归榜首种办法时却成功了)
关于途径设置问题,能够 用终端逐渐寻觅,比方 在 终端下 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
上面的指令会显现arm-linux-gcc信息和版别,这是我显现的信息:
root@ubuntu:/home/berlin# arm-linux-gcc -v
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)
6.编译Hello World程序,测验穿插东西链
写下下面的Hello World程序,保存为hello.c
#include
int main()
{
printf(“Hello World!\n”);
return 0;
}
履行下面的指令:
$ arm-linux-gcc hello.c -o hello
ls 下
看到hello 履行文件
$ file 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上运转