- 论坛徽章:
- 0
|
在cygwin下建立交叉编译环境吧
是要费点事的
参考下"ARM应用系统开发详解"第七章 建立交叉编译器 部分
提醒下,首先不要企图找什么新的编译器版本,会带出更多的问题
给个下载链接
http://linux.chinaunix.net/bbs/thread-899011-1-1.html
7.3.1.2 为安装windows的宿主机建立交叉编译器
这部分内容是专门针对那些对Linux环境和Linux中的应用程序不熟悉,宁愿用PC上基于Windows的操作系统来开发嵌入式系统的读者而写的。
1. Cygwin软件介绍
为了在Windows下开发嵌入式操作系统应用程序,可以在Windows环境下装上Cygwin软件。Cygwin是一个在Windows平台上运行的Unix模拟环境,是Cygnus Solutions公司开发的自由软件。它对于学习掌握Unix/Linux操作环境,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。
Cygnus当初首先把gcc,gdb等开发工具进行了改进,使它们能够生成并解释win32的目标文件。然后,把这些工具移植到windows平台上去。一种方案是基于win32 API对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,Cygnus采取了一种不同的方法——他们写了一个共享库(就是cygwin1.dll),把win32 API中没有的Unix风格的调用(如fork,spawn,signals,select,sockets等)封装在里面,也就是说,他们基于win32 API写了一个Unix系统库的模拟层。这样,只要把这些工具的源代码和这个共享库连接到一起,就可以使用Unix主机上的交叉编译器来生成可以在Windows平台上运行的工具集。以这些移植到Windows平台上的开发工具为基础,Cygnus又逐步把其他的工具(几乎不需要对源代码进行修改,只需要修改他们的配置脚本)软件移植到Windows上来。这样,在Windows平台上运行bash和开发工具、用户工具,感觉好像在Unix上工作。 关于Cygwin实现的更详细描述,请参考http://cygwin.com/cygwin-ug-net/cygwin-ug-net.html。
2. Cygwin软件的安装
要得到Cygwin的最新安装版本,请到Cygwin的主页http://cygwin.com/上下载最新的Cygwin,在该页面的右上角有'' Install Cygwin Now '',点击此处,就会先下载一个叫做setup.exe的GUI安装程序,用它能下载一个完整的Cygwin。图7.2所示为在点击setup.exe后出现”选择安装类型”对话框。建议读者把Cygwin整个安装包先下载到本地,再进行本地安装比较方便,即在下图先选择第二个选项,等到将Cygwin完全下载后,再选择第三个选项进行本地安装。
图7.2 选择安装类型
安装的时候建议最好不要安装到C:\目录下,比如安装在D:\下。
在安装的过程中,会让用户选择安装哪些包,这些包主要是确定开发环境,编译工具等,如果不能确定具体需要哪些包的话,而硬盘空间足够的情况下,就选择全部安装。在出现的对话框的''All''的右边点击''Default'',直到变成''Install'',如下图7.3所示:
图7.3 选择安装包
Cygwin的安装过程时间比较长,请读者耐心等待。当出现创建图标的画面点击“完成”按钮之后,屏幕会有几秒钟的闪动,出现类似下面的画面如图7.4所示,这是在执行Cygwin安装后的脚本配置。
图7.4 Cygwin安装后自动配置
自动配置结束后,出现Cygwin成功安装结束的提示框。桌面上会出现Cygwin的图标。
3. 在Cygwin下生成交叉编译器
在自己生成交叉编译器之前,首先对cygwin进行一些设置。假设Cygwin安装在d目录下,在打开Cygwin窗口之前,进入到D:\cygwin目录,在这个目录下,有一个文件名为cygwin.bat的批处理文件,编辑该文件,在第一行后加入set CYGWIN=title ntea,这是因为cygwin的启动批处理文件需要启动Unix文件系统模拟。修改完毕后,保存后退出。双击桌面上的Cygwin图标,打开后默认用户为在Windows中登录的用户名(这里所使用的操作系统是windows 2000 professsional),在如图7.5所示的界面中,在根目录(即D:\cygwin)下键入:
cd bin
mv sh.exe sh-original.exe
ln –s bash.exe sh.exe
做上述几步的原因是因为大多数linux系统将sh符号链接到bash,Cygwin上的sh.exe和bash.exe是不同的,因此必须用bash 代替sh。
从网站http://www.uclinux.org/pub/uClinux/arm-elf-tools/tools-20030314/上下载生成工具链的各种源码,根据脚本文件build-uclinux-tools.sh 建立可在windows下编译用户应用程序的交叉编译器,生成的交叉编译器最终被打包为arm-elf-tools-cygwin-yyyymmdd.tar.gz的文件,其中yyyy为生成交叉编译器的年,mm为生成交叉编译器的月份,dd 为日期。
这里,希望读者注意的是在生成交叉编译器的过程中,可能会遇到多次错误,读者应该根据给出的出错信息,进行相应文件的修改。由于习惯上的原因,linux下的压缩文件一般都是以.tar.gz或者.tgz结尾的,虽然用windows下的解压软件比如winzip或者winrar可以解压这些文件,但是推荐读者不要用这些软件在windows下解压,因为这样可能会造成某些信息的丢失。
本书生成的交叉编译器名为arm-elf-tools-cygwin-20030502.tar.gz。
图7.5 Cygwin开发环境
4. 在Cygwin环境下建立交叉编译器
在根目录下键入:
tar xvzf arm-elf-tools-cygwin-20030502.tar.gz
进行交叉编译器的解压,解压完毕后在/usr/local/bin/目录下可以看到各种GNU工具。有了交叉编译器后,熟悉Windows的读者就可以在Windows下编译在uClinux上运行的应用程序了。 |
|