Android学习之一:Cygwin简介

来源:互联网 发布:胶卷转数码 知乎 编辑:程序博客网 时间:2024/05/23 21:20

   为了能够一窥Android底层的东东,还是要搭建编译Android的环境。虽有UbuntuSuse系统,无奈总感觉在不同的系统下切来切去很是不便。在Windows工作学习,要编译Android,就不得不用重量级的软件--Cygwin.

    N久以前搞Qtopia的时候,曾经小用过一段Cygwin,不过那时只是使用别人搭建好的环境,自己却从未动手搞过。最近反反复复安装这个Cygwin,真是繁琐。要不是安装不全,就是下载不完全就挂掉了。写下来作为文档吧。

     一、Cygwin简介

       Cygwin是一个在windows平台上运行的unix模拟环境,是Cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unixwindows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。比如现在开发、移植QtopiaAndroid

Cygwin软件的作用是让Windows拥有Unix-like环境的软件。所以,GCC等编译器自然也就会包含在里面。不过,对于开发者,Cygwin是一个开发环境。而对于用户来说Cygwin是一个运行环境。

   

      二、Cygwin机理

       Cygnus当初首先把gccgdbgas等开发工具进行了改进,使他们能够生成并解释win32的目标文件。然后,他们要把这些工具移植到windows平台上去。一种方案是基于win32 api对这些工具的源代码进行大幅修改,这样做显然需要大量工作。因此,他们采取了一种不同的方法——他们写了一个共享库(就是cygwin.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/highlights.html.
 

   三、安装包的获得

Cygwin的官方网站为http://cygwin.com。国内站点为http://www.cygwin.cn..要安装网络版的cygwin,可以到http://cygwin.com或者http://www.cygwin.cn ,点击"Install Cygwin Now!"。这样会先下载一个叫做setup.exeGUI安装程序,用它能下载一个完整的cygwin。按照每一屏的指示可以方便的进行安装。也可以选择下载到本地,然后再安装(可根据setup.exe的选项进行设置)。

官方的安装指南可参考http://www.cygwin.cn/site/install/

 

   

 

原创粉丝点击