Cygwin的下载和安装配置
Cygwin的下载和安装配置
目录
一、Cygwin介绍
1. 什么是Cygwin
Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购)。它对于学习UNIX/Linux操作环境,或者从UNIX到Windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用GNU工具集在Windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对Cygwin产生了兴趣。
Cygwin 提供一个UNIX 模拟 DLL 以及在其上层构建的多种可以在 Linux 系统中找到的软件包,在 Windows XP SP3 以上的版本提供良好的支持。Cygwin主要由Red Hat及其下属社区负责维护。
那么你会问,在Windows上安装Cygwin有什么意义呢?有何用处?其实用处还是特别的大,像我们在使用eclipse平台进行插件开发的时候,假设你现在要做一个在eclipse平台上能够编译C/C++程序的集成开发环境(也就是插件),那么就需要使用到插件CDT,类似于Java的开发环境插件JDT,那么你在eclipse里面使用插件CDT,就需要你的电脑上可以运行gcc、g++、gdb等等的命令,此时,我们的Cygwin就起到作用啦,【如果你想要在eclipse中开发一个C/C++的集成开发环境的话,那么就需要组合:eclipse + CDT插件 + Cygwin】。
2. Cygwin的组成模块
Cygwin包括了一套库,该库在Win32系统下实现了POSIX系统调用的API;还有一套GNU开发工具集(比如GCC、GDB),这样可以进行简单的软件开发;还有一些UNIX系统下的常见程序。2001年,新增了X Window System。
另外还有一个名为MinGW的库,可以跟Windows本地的MSVCRT库(Windows API)一起工作。MinGW占用内存、硬盘空间都比较少,能够链接到任意软件,但它对POSIX规范的实现没有Cygwin库完备。
但糟糕的是,Cygwin不支持Unicode。实际上,除了当前Windows系统以及OEM codepages(例如,一个俄语用户,他的代码页是CP1251和CP866,而不能是KOI8-R、ISO/IEC 8859-5、UTF-8等),Cygwin对其他字符集都不支持。Cygwin 的较新版本可以通过自带终端模拟器的设置来满足显示 UTF-8 和更多代码页的功能。
Red Hat规定,Cygwin库遵守GNU General Public License,但也可以跟符合开源定义的自由软件链接。Red Hat另有价格不菲的许可协议,这样使用Cygwin库的专属软件,就可以进行再发布。
3. Cygwin的工作机制
cygnus当初首先把gcc,gdb,gas等开发工具进行了改进,使他们能够生成并解释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的下载和安装
在第一节中我们知道了Cygwin的作用是在Windows上实现类似UNIX操作系统的编译和调试模拟环境,也就是在Windows上也能够使用gcc、g++来进行编译程序。那么在这一节,我们来了解这个Cygwin的安装过程:
第一步:下载 Cygwin Installation,下载后打开 setup-x86_64.exe 文件,出现以下界面。
点击 “下一步(N)” 出现一下界面,在这个界面上,我们可以看到有三种安装模式,分别是:
- Install from Internet: 这种模式是直接从Internet安装的,适合有联网的电脑;
- Download Without Installing: 这种模式只从网上下载Cygwin的组件包,但是不安装;
- Install from Local Directory: 这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin。
从上面的三种模式中选择合适的安装模式,我们先按照第一种模式进行安装,直接从网上安装,当然在下载的同时,Cygwin组件也保存到了本地,方便以后能够再次安装,选中后,点击 “下一步(N)”。
第二步:选择Cygwin的安装目录,以及一些参数的设置。默认的安装位置是C:\cygwin\,你也可以选择自己的安装目录,然后选择“下一步”,小编是安装到了D:\IDE\Cygwin\Source。
接下来是我们可以选择安装过程中从网上下载的Cygwin组件包的保存位置,选择完以后,点击“下一步”,小编将要保存的组件包放置到D:\IDE\Cygwin。
第三步:这一步选择连接的方式,选择你的连接方式,然后点击下一步,会出现选择下载站点的对话框,如下图所示。
此步选择第一个163提供的镜像网站就可以,国内下载速度挺快,如果有其他镜像,可以输入URL后,点击“Add”进行添加,然后再在列表中选中。选择完成后,点击“下一步”,进过下载几个文件后显示如下界面:
第四步:进入如下界面,下面就在这个界面中下载我们需要编译C/C++代码的Packages,我们只需要下载“Devel”分支下几个包就可以了:
gcc,
gcc-core,
gcc-g++,
gcc-mingw-core,
gcc-mingw-g++,
make ,
gdb,
binutils
在上图的search框中输入gcc,程序会自动进行搜索,如下图,通过选择“Devel”分支下的包,找到安装我们需要的包,然后点击Skip来选择最新的安装包。
第五步:等待安装,安装的时间依据你选择的组件以及网络情况而定。安装完成后,安装程序会提示是否在桌面上创建Cygwin图标等,点击完成退出安装程序。
安装完成:
三、 配置环境变量
打开电脑上的环境变量,然后再系统变量区域中的path变量里面添加Cygwin的安装路径下的bin路径:
配置环境变量完成后,打开命令窗口Win+R,输入gcc或者g++,如果不会出现如果显示“访问被拒绝” (access denied),就说明安装成功,如果出现“访问被拒绝” (access denied),那么解决方法是:进入cygwin安装目录\bin下检查g++.exe, gcc.exe是否只有1k大小,如果是,那么文件是符号链接,那么把文件重命名一下(备份)。 然后把g++-3.exe(或者g++-4.exe)拷贝一份,重命名为g++.exe。 把gcc-3.exe拷贝一份,重命名为gcc.exe。
四、 Cygwin的卸载
完全卸载Cygwin,因为Cygwin 的安装程序没有提供卸载的选项,因此我们需要手动删除 Cygwin 的有关文件。官网推荐的方法如下:
1. 删除电脑上已经安装的服务
在安装Cgywin的时候可能安装了常见服务,像 sshd、cron、cygserver、inetd、apache、postgresql 等,将这些服务删除掉。
2. 停止电脑上所有关于Cygwin的后台程序
停止电脑上后台正在运行的Cygwin程序,确保后面不会出现在删除文件的时候不会出现删不了的问题。
3. 删除 Cygwin 根目录
默认是 C:\Cygwin,把整个目录全部删除。如果提示文件被占用无法删除,仔细检查一下有没有Cygwin相关的程序仍在运行,实在不行就重启再删。
4. 删除快捷方式
删除桌面上的快捷方式和开始菜单中的快捷方式。
5. 删除系统环境变量 path 中的项
如果当时安装的时候添加了环境变量,那么需要我们手动删除这些项目。主要检查path中有没有和 Cygwin 有关的项。
6. 删除注册表中的项
打开注册表编辑器(可以用搜索功能找到),分别在 HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER下面找到Software ,然后在Software中找到Cygwin ,把这一项删掉即可。
更多推荐
所有评论(0)