admin 管理员组

文章数量: 1086019


2024年3月20日发(作者:c语言编译环境有哪些)

Cygwin使用指南

下载:

1. 下载、运行安装向导文件

一开始的下载方法,了解Cygwin的人都知道:就是到 : 中

先当个安装向导文件,这个是Cygwin的官方下载安装向导文件,而且也只能

通过它才能正确下载最新的Cygwin版本(为何?稍后有说明)。

下载完毕,双击运行,程序安装向导界面如下图所示:

点击“下一步” 继续,准备选择Cygwin的安装方式。

2. 选择安装方式

如上图所示,一共有三种安装方式:

(1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载

好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。

(2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。

(3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件

的目录进行安装。

强烈建议选择第(2)项,以便于能够手工指定安装路径。然后再点击”下一步“。

3. 设置安装文件的本地存储路径

由于我们选择的是直接下载的安装方式,所以必需指定好一个本地下载文件存储目录。

安装目录所在的驱动器剩余空间必须足够(若要完全下载,至少需要600M以上的空间)。

设置好后,点击“下一步”。

4. 选择连接方式

如上图所示,共有三种连接方式选择:

(1)Direct Connection:直接连接。

(2)Use IE5 Settings:使用IE的连接参数设置进行连接。

(3)Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务

器地址和端口号)。

用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,

也就是直接连接方式。然后再点击“下一步”。

5. 选择下载站点

经过一番搜索,安装向导为我们列出了众多可用的下载镜像站点以供选择,有HTTP

的也有FTP的。说实话,这些站点我几乎都试过了一遍,真正能用的能给我留下深刻印象

的寥寥无几。这里我只推荐一个站点:,又快又稳定。用户也可

以自由决定倒底用哪个站点进行下载。另外,几个后辍为“.jp”的站点也还过的去,但不

推荐。为啥?因为那是小日本的站点。

言归正传,选择好了没? 好, 点击“下一步”,向导会显示下图所示的信息:

注意!这并不是正式的下载,而只是安装向导从下载镜像站点上获取压缩过的安装列

表文件。这个安装列表文件是Cygwin统一指定的,并随着新版本的发布而更新。安装向

导就是通过它来得知究竟可以下载什么不能下载什么。并且该下载列表文件中还有包含有

每个下载文件的MD5验证码,非常重要。

6. 选择所要下载/安装的安装包内容

安装列表文件下载完毕,向导会显示列表中的内容,供用户自由选择倒底需要下载哪

些安装包。如何选择呢?只需用鼠标点击每个安装包名后面那个循环箭头图标即可:图标

后面的文字是表示究竟对该安装包采取何种下载/安装方式,并随着点击而不断变化,共有

这么几类:

(1)Default:这是默认选择,表示只下载/安装该包的缺省安装项(可点击包左边的

+号展开,看看缺省安装究竟是些什么内容)。

(2)Install:表示要下载/安装该包的全部内容。所要求的空间也最大。

(3)Reinstall:表示重新下载/安装该包的内容(以上一次正常下载/安装时所选择的

内容为准)。这个选项非常有用,稍后在下篇中会有说明。

(4)Uninstall:这个就不用解释了吧。

用户可根据自己的实际需要,来准定究竟下载/安装哪些内容。推荐选择“Install”方

式,一步到位,免得日后被各种这样那样的问题所困扰。

至于窗口顶部那些“Keep”、“Prev”、“Curr”、“Exp”等等选项,只是用来改变当前

树结构的显示方式的,对下载/安装没有什么影响。用户可以用默认的“Exp”。然后点击“下

一步”,就要开始正式进行下载啦。

7. 下载

-----下篇 Cygwin完全下载指南(下)-断点续传篇------

上篇我们已经遇到个难题,就是Cygwin还没全部下载完全,向导程序就自己罢工不

干了。怎么办?继续等待?重新再来一遍?换个下载镜像站点?。。。都不是好办法,不保

险啊。最好的办法,就是能让向导程序在上次异常中止的地方重新开始下载,继续下载。

也就是类似于FTP的断点续传功能。

Cygwin的安装向导程序能够实现该功能吗?能!而且干的还挺漂亮,只不过。。。相

应的设置实在是太古怪了,简直有误人子弟之嫌!我在尝试的时候,有N 回都已经几乎摸

到门把手了,但就是因为心想:怎么可能会是这种配置呢?决对不行的!。。。。结果,像瞎

子一样继续在黑暗中摸索了很久,才找到了出口。其中得出的教训远比得到的经验深

刻~~~~闲言少叙,言归正传。

一但用户在下载过程中碰到了这种情况,不能浪费时间继续等待,因为那时安装向导

实际上已经被中止了和站点的连接,只是它仍在那里不停的循环,不停的徒劳的尝试而已。

我们唯一要做的也是唯一能做的,就是点击“取消”按钮,关闭该向导!不要心疼已经下

载的那部分安装文件,不用担心,已经下载完毕的文件不会消失,而且还仍将有用。

关闭向导程序后,再重新运行它(一定要用你原先用的那个,而不能重新再当一个),

一路“下一步”下去(详细步骤可参阅上篇的内容,但要注意的是,进行本地下载存储路

径设置时,必须和原先下载时的设置保持一致!),直到出现下图所示的站点选择窗口:

这时候,千万千万别去选择其他站点!对,仍旧选择你第一次下载时选择的那个!而

且,向导程序也会根据你的下载日志,自动获得并定位到该镜像站点上。所以,这时你唯

一要做的,就是点击“下一步”。

熟悉的安装包下载选择界面又出现了,如下图所示。

这个时候,要进行的设置就非常关键了:把ALL后面的Install改为Reinstall!哈哈,

是不是有点什么想法了?对! Reinstall方式在安装时是表示重新安装,但在下载的时候

表示的就是继续下载!这时我就不能不骂Cygwin安装程序的制作者了:你丫的程序界面

怎么不设计的友好点?既然我前面选择是“Download Without Installing”,那你好歹在

这项设置里面,把Install/Reinstall改换成Download/Continue Download才是啊。

好了不说了,都“Reinstall”了没?好,点击“下一步”。

向导程序现在已经知道你要继续上次的一载/续传了,它就会根据已经生成好的下载日

志文件,对现有已经下载好的文件逐个做一把MD5校验码的Checking(如下图所示),

确定已下载的部分没有任何问题。

不用点“下一步",向导程序会自动切换到下载界面中。

看看下图,看到了吗? 这一次的下载可不是从a字头的文件开始,而是直接从g字

头的文件开始,哈哈!

恭喜,你可以长舒一口气了:原来如此

需要说明的是,这时候总的下载进度稍稍有不同:不再是整个下载的进度了,而是你

剩余的需要下载的文件的进度。所以,当你看到一开始仍是0%时,大可不必担心。你原

先下载的文件都在。

如果在续传时,安装向导程序又罢工了,只需将以上步骤重新来一遍即可,这种断点

续传方式虽然土了点、怪异了点,可的确能保证你的下载能持续下去,直到全部 500多兆

的Cygwin安装文件下载完成。至此,本下载指南算是完成任务了。至于如何安装,我这

里就不凑热闹了,因为网上相关的文章多的是,随便搜一下就有一大堆。大家自己看吧,

安装其实蛮简单的。

这次Cygwin下载磨难记,我更加验证了我自己的一宝贵信条:只要有一线希望,就

绝不放弃!无论如何都不要放弃!你也许会说,傻B了吧,为何不直接下载 GCC包或者

是MingW呢,一样可以让Eclipse支持C++开发啊。可是我想要下载Cygwin是有原因

的:因为Cygwin是Win平台下的 UNIX模拟环境,我们公司现在的服务器端就建立在

HP-UX平台之上,通过Cygwin,我可以直接在现有环境境中初步学习UNIX相关知识,

而不用对自己现在的电脑大动干戈。一箭双雕,何乐不为?

========================

顺便提醒一下:

(1)在用户指定的本地存储路径内,安装向导程序会生成类似这样的一个目录:

http%3a%2f%% %2fcygwin,这就是你下

载文件的真正所在目录。还会生成两个日志文件:和 , 用户感

兴趣的活,可以打开来看看,对了解Cygwin的下载机制有不少帮助。

(2) 如果用户线路不是很好的话,可选择晚上11:00以后至早上8:00点这一段时

间,进行Cygwin的下载,那时候人少,连接比较稳定,速度也有保证:我在下载时,曾

达到了180KB/s的高速,这对于连接一个国外下载站点来说,已经是相当快的了。

Cygwin使用指南

根据cygwin user guide翻译整理,希望对大家有所帮助。有错误清指出。

1 引言

cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司

开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。

它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某

些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有

用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。本

文将对其作一介绍。

2 机理

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-ug-net/.

3 安装设置cygwin

3.1 安装

要安装网络版的cygwin,可以到,点击"Install Cygwin Now!"。

这样会先下载一个叫做的GUI安装程序,用它能下载一个完整的cygwin。按

照每一屏的指示可以方便的进行安装。

3.2 环境变量

开始运行bash之前,应该设置一些环境变量。cygwin提供了一个.bat文件,里面已

经设置好了最重要的环境变量。通过它来启动bash是最安全的办法。这个.bat文件安装

在cygwin所在的根目录下。 可以随意编辑该文件。

CYGWIN变量用来针对cygwin运行时系统进行多种全局设置。开始时,可以不设置

CYGWIN或者在执行bash前用类似下面的格式在dos框下把它设为tty

C:> set CYGWIN=tty notitle glob

PATH变量被cygwin应用程序作为搜索可知性文件的路径列表。当一个cygwin进程

启动时,该变量被从windows格式(e.g. C:WinNTsystem32;C:WinNT)转换成unix格

式(e.g., /WinNT/system32:/WinNT)。如果想在不运行bash的时候也能够使用cygwin

工具集,PATH起码应该包含x:cygwin bin,其中x:cygwin 是你的系统中的cygwin

目录。

HOME变量用来指定主目录,推荐在执行bash前定义该变量。当cygwin进程启动

时,该变量也被从windows格式转换成unix格式,例如,作者的机器上HOME的值为

C:(dos命令set HOME就可以看到他的值,set HOME=XXX可以进行设置),在bash

中用echo $HOME看,其值为/cygdrive/c.

TERM变量指定终端型态。如果美对它进行设置,它将自动设为cygwin。

LD_LIBRARY_PATH被cygwin函数dlopen()作为搜索.dll文件的路径列表,该变量

也被从windows格式转换成unix格式。多数Cygwin应用程序不使用dlopen,因而不需

要该变量。

3.3 改变cygwin的最大存储容量

Cygwin程序缺省可以分配的内存不超过384 MB(program+data)。多数情况下不需

要修改这个限制。然而,如果需要更多实际或虚拟内存,应该修改注册表的

HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER区段。田家一个DWORD键

heap_chunk_in_mb并把它的值设为需要的内存限制,单位是十进制MB。也可以用

cygwin中的regtool完成该设置。例子如下:

regtool -i set /HKLM/Software/Cygnus Solutions/Cygwin/heap_chunk_in_mb

1024

regtool -v list /HKLM/Software/Cygnus Solutions/Cygwin

4 使用cygwin

这一段讲一下cygwin和传统unix系统的不同之处。

4.1 映射路径名

4.1.1 引言

cygwin同时支持win32和posix风格的路径,路径分隔符可以是正斜杠也可以是反

斜杠。还支持UNC路径名。(在网络中,UNC是一种确定文件位置的方法,使用这种方

法用户可以不关心存储设备的物理位置,方便了用户使用。在Windows操作系统,Novell

Netware和其它操作系统中,都已经使用了这种规范以取代本地命名系统。在UNC中,

我们不用关心文件在什么盘(或卷)上,不用关心这个盘(或卷)所在服务器在什么地方。

我们只要以下面格式就可以访问文件:

服务器名共享名路径文件名

共享名有时也被称为文件所在卷或存储设备的逻辑标识,但使用它的目的是让用户不

必关心这些卷或存储设备所在的物理位置。)

符合posix标准的操作系统(如linux)没有盘符的概念。所有的绝对路径都以一个斜

杠开始,而不是盘符(如c:)。所有的文件系统都是其中的子目录。例如,两个硬盘,其中

之一为根,另一个可能是在/disk2路径下。

因为许多unix系统上的程序假定存在单一的posix文件系统结构,所以cygwin专门

维护了一个针对win32文件系统的内部posix视图,使这些程序可以在windows下正确

运行。在某些必要的情况下,cygwin会使用这种映射来进行win32和posix路径之间的

转换。

4.1.2 cygwin mount表

cygwin中的mount程序用来把win32盘符和网络共享路径映射到cygwin的内部

posix目录树。这是与典型unix mount程序相似的概念。对于那些对unix不熟悉而具有

windows背景的的人来说,mount程序和早期的dos命令join非常相似,就是把一个盘

符作为其他路径的子目录。

路径映射信息存放在当前用户的cygwin mount表中,这个mount table 又在

windows的注册表中。这样,当该用户下一次登录进来时,这些信息又从注册表中取出。

mount 表分为两种,除了每个用户特定的表,还有系统范围的mount表,每个cygwin

用户的安装表都继承自系统表。系统表只能由拥有合适权限的用户(windows nt的管理

员)修改。

当前用户的mount表可以在注册表"HKEY_CURRENT_USER/Software/Red Hat,

Inc./Cygwin/mounts v" 下看到。系统表

存在HKEY_LOCAL_MACHINE下。

posix根路径/缺省指向系统分区,但是可以使用mount命令重新指向到windows

文件系统中的任何路径。cygwin从win32路径生成 posix路径时,总是使用mount表

中最长的前缀。例如如果c:被同时安装在/c和/,cygwin将把C:/foo/bar转换成

/c/foo/bar.

如果不加任何参数地调用mount命令,会把Cygwin当前安装点集合全部列出。在

下面的例子中,c盘是POSIX根,而d盘被映射到/d。本例中,根是一个系统范围的安装

点,它对所有用户都是可见的,而/d仅对当前用户可见。

c:> mount

f:cygwinbin on /usr/bin type system (binmode)

f:cygwinlib on /usr/lib type system (binmode)

f:cygwin on / type system (binmode)

e:src on /usr/src type system (binmode)

c: on /cygdrive/c type user (binmode,noumount)

e: on /cygdrive/e type user (binmode,noumount)

还可以使用mount命令增加新的安装点,用umount删除安装点。

当Cygwin不能根据已有的安装点把某个win32路径转化为posix路径时,cygwin

会自动把它转化到一个处于缺省posix路径 /cygdrive下的的一个安装点. 例如,如果

Cygwin 访问Z:foo,而Z盘当前不在安装表内,那么Z:将被自动转化成/cygdrive/Z.

可以给每个安装点赋予特殊的属性。自动安装的分区显示为“auto”安装。安装点还

可以选择是"textmode"还是 "binmode",这个属性决定了文本文件和二进制文件是否按

同样的方式处理。

4.1.3 其他路径相关信息

cygpath工具提供了在shell脚本中进行win32-posix路径格式转换的能力。

HOME, PATH,和LD_LIBRARY_PATH环境变量会在cygwin进程启动时自动被从

Win32格式转换成了POSIX格式(例如,如果存在从该win32路径到posix路径的安装,

会把c:cygwinbin转为/bin)。


本文标签: 下载 安装 文件 路径 向导