这两天有时间就试着安装ubuntu系统学习一下,结果在网上google了一篇转载得不能再垃圾的文字了,后来找到了这位仁兄的,还比较科学。
最近重新硬盘安装了ubuntu9.04并升级到9.10就重新建立交叉编译环境arm-linux-gcc-4.3.2。
将arm-linux-gcc-4.3.2.tgz复制到任意路径下,我装的是双系统,现在ubuntu9.10已近很好的能管理硬盘了,这个得益于 palimpsest硬盘实用工具,记得9.04版本时我的几个xp 的分区都能挂载,但识别它们的名字都是乱码,很不爽,现在可好了,ubuntu9.10带来了全新的快感!好了,我们言归正传。
首先确保安装了标准C开发环境,一句命令搞定:sudo apt-get install build-essential
然后在终端进入arm-linux-gcc-4.3.2.tgz存放目录,再sudo tar -zxvf arm-linux-gcc-4.3.2.tgz -C /
(注意大写C字母后留一个空格,这样会自动解压缩到/usr/local/4.3.2目录下)
修改环境变量,使交叉编译环境生效。我是执行如下命令:
yagerya@yagerya-desktop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
yagerya@yagerya-desktop:~$ sudo 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.3.2/bin"保存退出即可.然后注销重新登录就可使环境变量生效 了。
我不推荐大家这样做,我试过了在编译内核时无论执行sudo -s后,再执行arm-linux-gcc -v也没有出现环境变量的信息,故cd /opt/FriendlyARM/mini2440后,无论make zImage或sudo make zImage 都出现无法再到arm-linux的情况!
所以我推荐大家这样做:
yagerya@yagerya-desktop:~$ vim ~/.profile
在这个文件最后添加上自己的环境变量:export PATH=$PATH:/usr/local/arm/4.3.2/bin
然后在终端执行source ~/.profile ,即可立即生效。
yagerya@yagerya-desktop:~$ arm-linux-gcc -v
Using built-in specs.
Target: arm-none-linux-gnueabi
Configured with: /scratch/julian/lite-respin/linux/src/gcc-4.3/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=arm-none-linux-gnueabi --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Sourcery G++ Lite 2008q3-72' --with-bugurl=https://support.codesourcery.com/GNUToolchain/ --disable-nls --prefix=/opt/codesourcery --with-sysroot=/opt/codesourcery/arm-none-linux-gnueabi/libc --with-build-sysroot=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/libc --with-gmp=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --with-mpfr=/scratch/julian/lite-respin/linux/obj/host-libs-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu/usr --disable-libgomp --enable-poison-system-directories --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin --with-build-time-tools=/scratch/julian/lite-respin/linux/install/arm-none-linux-gnueabi/bin
Thread model: posix
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
yagerya@yagerya-desktop:~$
编写一个简单的C程序test.c,测试交叉工具链
yagerya@yagerya-desktop:~$ cat test.c
#include <stdio.h>
int main()
{
printf("hello ubuntu!/n");
return 0;
}
yagerya@yagerya-desktop:~$ arm-linux-gcc -o test test.c
yagerya@yagerya-desktop:~$ ls
arm-linux-gcc-4.3.2.tgz test 公共的 音乐
Crossword game test.c 模板 桌面
Crossword game.c test.cpp 视频
examples.desktop Ubuntu 9.04)20090509Beta.pdf 图片
Linux开发视频 work 文档
yagerya@yagerya-desktop:~$
这样就生成了arm平台的可执行二进制文件,把它下载到开发板试试吧!