Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1820773
  • 博文数量: 473
  • 博客积分: 13997
  • 博客等级: 上将
  • 技术积分: 5953
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-22 11:52
文章分类

全部博文(473)

文章存档

2014年(8)

2013年(38)

2012年(95)

2011年(181)

2010年(151)

分类: LINUX

2011-01-25 14:14:58

1.下载arm-linux-gcc-3.4.1.tar.bz2到任意的目录下
  arm-linux-gcc-3.4.1.tar.bz2 的下载地址如下:


2.解压 arm-linux-gcc-3.4.1.tar.bz2
  #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2
  解压过程需要一段时间,解压后的文件形成了 usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/
  # cd usr/local/
  #cp -rv arm /usr/local/
  现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了
3.  修改环境变量,把交叉编译器的路径加入到PATH(有三种方法,强烈推荐使用方法一)
  方法一:修改/etc/bash.bashrc文件
     #vim /etc/bash.bashrc

            在最后加上:

   export PATH$PATH:/usr/local/arm/3.4.1/bin

export PATH

    (如果不能编辑,先修改相关文件的权限使用chmod命令。)

方法二:修改/etc/profile文件:
# vim /etc/profile

增加路径设置,在末尾添加如下,保存/etc/profile文件:
export PATH$PATH:/usr/local/arm/3.4.1/bin
  方法三:#export PATH$PATH:/usr/local/arm/3.4.1/bin
  注:(这只能在当前的终端下才是有效的!)
4. 立即使新的环境变量生效,不用重启电脑:
 对应方法一:#source /root/.bashrc
 对应方法二:# source /etc/profile
5. 检查是否将路径加入到PATH
   # echo $PATH
  显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。至此,交叉编译环境安装完成。
 6.测试是否安装成功
  # arm-linux-gcc -v
上面的命令会显示arm-linux-gcc信息和版本,这是我显示的信息:
 Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs
 Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc- 3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu

 --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm

 -linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable

 -nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable- languages=c,c++ --enable-shared --enable-c99 --enable-long-long
 Thread model: posix
 gcc version 3.4.1


7.编译Hello World程序,测试交叉工具链
  
写下下面的Hello World程序,保存为 hello.c
#include
int main()
{
printf("Hello World!\n");
return 0;
}

   执行下面的命令:
# arm-linux-gcc -o hello hello.c
   
源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了!

接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86PC机上运行。


#########################################################


 今天花了一整天的时间来解决insight 的端口无法修改的问题,虽然是解决了,但是也付出了很大的代价,花了一整天时间+毁掉了以前的系统。所以来重新安装配置arm linux交叉编译环境。顺便记下.....
      1. 虚拟机安装ubuntu9.10,这个很简单了不需累述了,安装前vmware会让你选择划分多大的硬盘,其实这个并不会是真的立即分离出那么大的空间出 来,即使你目前只剩下5g,你也可以要求划分30g,你指定的只是一个上限值,最好设置大一点,以免以后不够用又重新配置。虚拟机安装好了第一件事自然是 安装vmware tool了,然后就是选择好ubuntu的软件源,中国的cn99很不错,apt-get update更新下,便于之后装软件,我一般直接用的root用户,免得麻烦,设置root密码 sudo passwd root,之后就可以切换了。
      2.ubuntu自带的gcc版本比较高,语法要求很严格,会对我们以后编译安装某些软件很不利,要选择4.2以下的,ok,就装4.2吧,用ubuntu的命令安装最安全省事,如果下载源码编译安装,会累死人的
            apt-get gcc4.2
         然后修改我们默认的gcc,gcc在/usr/bin下面,它其实只是一个软链接,删除了,然后重新指定一下。切换到/usr/bin目录,安装好的gcc4.2就在这里,建立软链接
            ln -s gcc-4.2 gcc
         运行gcc -v下,是否显示正确。呵呵,很简单啦
      3. 安装交叉编译器,网上去下载一个好的交叉编译工具链吧,我用的3.4.1,这个更简单了,解压之,然后将其中的arm文件夹移动到你想放的地方,譬如 /usr/local/  下,再将其bin文件路径/usr/local/arm/3.4.1/bin添加进/etc/environment  下,我们就可以直接使用arm-linux-gcc了
       4.安装insight,也是今天的重点,insight是基于gdb的,所 以gdb需要的环境是一定要有的,新力德安装libx11-dev libncurses5-dev和libc6-dev这3个依赖文件,先安装好啊,不然等出错了再安装需要重新编译,麻烦死了。insight编译之前, 要修改下源码,就是修改默认的端口,否则会是1000不能改的,因为我用的是jlink,其端口2331是不能修改的,所以只有修改gdb的端口了,找到 /gdb/gdbtk/libaray/targetselection.itb   ,查找1000,将其修改为2331(jlink端口)这里还需要注意一点,如果你跟我一样一定要修改insight端口,一定要看仔细了,这是 insight第一次编译安装,如果你以前安装过又删除了,再按照我这样修改编译安装 是不会有效的,除非你保证卸载的非常干净(其实源码make uninstall啥都没有写),否则,你得重新安装系统了!配置insight:
          ./configure --target=arm-linux  --enable-sim  --prefix=/usr/local/insight
           编译时间一般都很长,然后make ; make install
          最后添加其路径到系统中去,修改/etc/environment 添加/usr/local/insight/bin. 更新下此文件 source /etc/environment
       然后就是编译出gdbserver了,
          ~/gdb-6.8/gdb/gdbserver$ ./configure --target=arm-linux --host=arm-linux
          ~/gdb-6.8/gdb/gdbserver$ make CC=arm-linux-gcc        指定编译器,也可以直接指定路径
         这样在gdb-6.8/gdb/gdbserver目录下就生成了一个gdbserver可执行文件,拷贝到目标开发板上
       5.eclipse的安装
         这个是个IDE,其实我不用这个东西的,只是有点好奇,安装来玩玩,我真正使用的是windows下面的source insight编辑,然后ubuntu编译,用jlink+insight调试,咱不追求什么纯windows 纯linux啥的,怎么方便怎么来
         安装java
         apt-get install sun-java-jre
          apt-get install sun-java-jdk
         选择默认 java:sudo update-alternatives --config java
       以上虽然写的很简单,但是确是我长久以来花费了大量时间的血泪经验史啊,以前为了这些简单的东西 弄了很久很久,譬如编译安装gcc4.2,人都能搞疯,依赖软件多,编译时间超长,又不知道可以直接安装而不必编译安装,都是不动脑子 死搬硬套别人的文章造成的后果,以后凡遇事要多动动脑子,目标明确有选择性的去做!

ftp://ftp.arm.linux.org.uk/pub/armlinux/toolchain/
阅读(1613) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2011-03-07 13:44:40

很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com