




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Cygwin的安装配置Cygwin的安装比较简单,步骤如下:1. 先从官方网站或其它镜像网站下载一个Cygwin的网络安装程序,通常叫:setup.exe,文件很小。2. 运行下载到本地的Cygwin网络安装程序,它会以导航方式来帮你下载/安装Cygwin中的软件,在导航页的第一页会显示这个安装程序的版本号。3. 接下来,安装程序有3个安装方式的选择: Install from Internet:此为先从网上下载Cygwin软件包,再安装。这些软件包在安装后仍保留,不删除,为了以后再次使用。如果你第一次使用Cygwin,之前没有下载过Cygwin的软件包,就使用这个安装方式,安装完之后,下次安装(比如:重装系统后、或在其它机器上安装)时,就可以使用这些已下载的安装包。 Download Without Installing:此为只从网上下载Cygwin软件包,但不安装。 Install from Local Directory:此为使用本地目录中已下载的Cygwin软件包来安装软件。4. 选择Cygwin的安装路径,这个路径也是Cygwin安装完成后,它所模拟的Linux环境的根目录(Root Directory)。5. 选择Cygwin软件包的下载保存路径,安装完后,可以备份这个路径下的软件包,以备下次安装。6. 指定从哪个Cygwin的镜像站点下载软件包,选择一个速度最快的地址。在中国,这个镜像站点的速度还可以,如果列表中没有的地址,可以手动加入地址:/pub/,然后选择它。7. 选择需要下载/安装的软件包。点击软件包选择界面上的View按钮,可以以:软件包分类、全部软件包、最新软件包、没有安装的软件包等方式显示软件包列表。在Search后的可以键入想要下载/安装的软件包名字,然后再从软件包列表中选择。有4个对软件包版本下载/安装的全局设置: Keep:表示保持已安装的软件包的版本不变。 Prev:表示安装上一个稳定版本的软件包。 Curr:表示安装当前稳定版本的软件包,通常使用这个设置。 Exp:表示安装最新的实验性版本的软件包。上面4个是全局默认设置,再选择每个单独的软件包后,还可以设置该软件包特定的安装版本(覆盖全局默认设置):点击一个软件包中的New字段,此软件包就会在:Keep、可用的版本号、Uninstall、Reinstall、Skip之间切换。还可以选择软件包中的Src和Bin字段,指定是否安装该软件包的源码,或者已编译好的程序。8. 最后就是Cygwin的软件包下载/安装过程了。如果你选择的软件包出现了依赖问题,即选择的软件包依赖另一个软件包来工作,但那个软件包却没有被选择,这时Cygwin安装程序还会提示你:Unmet Dependencies Found,并显示引起依赖问题的相关软件包,还有一个:Intall these packages to meet dependencies 选项,选择后就可以帮你自动下载/安装依赖的软件包。Cygwin的安装程序真的很方便、智能,让我感觉有点像Debian系Linux的Dpkg/Apt软件包管理系统。还有一种安装Cygwin的方法,就是用简单的“拷贝”Cygwin安装目录的方法,这通常用在对于已配置好的Cygwin系统,复制到别的机器的情况。注意:在拷贝完Cygwin安装目录后还不能马上使用,需要修改注册表,主要是设置Cygwin模拟的Linux环境的目录到Windows路径的映射关系:在HKLMSOFTWARECygnus Solutions键下,参照以下.reg文件修改注册表:HKEY_LOCAL_MACHINESOFTWARECygnus SolutionsHKEY_LOCAL_MACHINESOFTWARECygnus SolutionsCygwinHKEY_LOCAL_MACHINESOFTWARECygnus SolutionsCygwinmounts v2; 将/映射到C:cygwin路径 HKEY_LOCAL_MACHINESOFTWARECygnus SolutionsCygwinmounts v2/native=C:cygwin flags=dword:0000000a ; 将/usr/bin映射到C:cygwinbin路径HKEY_LOCAL_MACHINESOFTWARECygnus SolutionsCygwinmounts v2/usr/binnative=C:cygwinbinflags=dword:0000000aHKEY_LOCAL_MACHINESOFTWARECygnus SolutionsCygwinProgram Options上面设置后,就可以在Cygwin的Shell环境中使用mount命令查看效果。更新:后来我使用新版本的Cygwin环境(Cygwin网络安装程序 2.674)时,注册表中保存Cygwin设置的子键名也变成了:HKLMSOFTWARECygwin。对于Cygwin的配置,大部分就是对Linux环境的配置,如果你对Linux环境熟悉的话,经验、知识基本上都能复用。这就是Cygwin的优点:它对Linux环境的模拟是很到位的,大多数移植应用的特征、风格也和Linux下原版的相同,我Linux下的bash、tcl、awk等脚本拿到Cygwin下基本都能用。因此,Unix/Linux下的一些大块头的软件也以Cygwin的方式移植到Windows下: Cygwin上的X Window实现 Cygwin上的KDE桌面环境/库 Cygwin上的Gnome桌面环境/库 Windows下搭建开发跨平台GUI程序环境-Cygwin、MinGW、Eclipse、wxWidgets最近使用Eclipse搭建了一个开发跨平台GUI程序的环境,其实是将一些开发包、开发库拼在一起使用,它们相互之间没有什么紧密的联系,不过这样也保留了它们自有的特点。下面首先说明一下这个开发环境中,几个组成部分的特点,这也表明了我为什么选择并组合使用它们的原因。随后在后续文章中逐步说明搭建这个环境的步骤。Cygwin这个项目的名字来源于:GNU、Cygnus、Windows,3者的缩写。Cygwin的目标是:构建一套Windows下的Linux模拟环境。因此,Cygwin是一个庞大的项目,不只包括Linux下的开发环境,也包括工作环境,和各种各样的Linux下的软件。在早期,Cygwin的核心是cygwin1.dll,可以认为它是一个POSIX界面的实现,依靠这个动态链接库,Unix/Linux下的软件可以很容易的移植到Windows下,并且风格保持原有的不变。不过随着Cygwin的发展,越来越多的Unix/Linux程序的移植,建立基于Cygwin的复杂程序依赖的库也越来越多,现在装完默认配置的Cygwin后,就会发现有很多cyg打头的动态链接库。目前Cygwin由RedHat维护和支持。在版权上,由于Cygwin不是一个软件,而是由成百上千的软件堆砌起来的系统,里面有商业软件的成分/概念,所以它的许可证有开源性质的(GPL)和商业性质的(从RedHat购买)两种。MinGW这个项目的名字来源于:Minimalist GNU for Windows的缩写。最初,MinGW的目标定位为:Windows下的开源的开发环境。它包括一系列软件:编译工具、链接工具、转储工具、调试工具、和其它开发工具等。另一方面,MinGW还提供一些开源的基础支持库,像GNU的C/C+ RT库(libc、libstdc+),POSIX的基本调用界面(包括pthread),甚至还有OpenGL和Windows API的调用接口等。几乎所有MinGW中的软件都是从GNU项目或Linux下移植到Windows下的。后来MinGW有了一个子项目叫:MSYS,其中包括了更多的Linux工具,其目标类似Cygwin:构建一套Windows下的Linux模拟环境。总之,MinGW中的东西很杂,和Cygwin之间有相当一部分是重复的(目前,Cygwin项目中已经集成MinGW了)。但MinGW和Cygwin的实现思路和设计思想是不同的:1. Cygwin通过一个中间层的动态链接库,将位于下层的Windows API,和位于上层的使用POSIX界面的应用连接起来,好处是应用在Linux与Windows之间移植更加方便,风格更加一致;缺点是发布应用时一定要带上Cygwin的环境动态库,应用执行效率也略微有点低。2. MinGW在基础支持库层次,使用静态链接的方式,这样生成的应用更加地本地化,应用执行效率也稍高一些。所以MinGW声明:基于MinGW开发的应用,不需要依赖任何第三方的C/C+ RT动态链接库,仅依赖Windows自身的运行环境:MinGW provides a complete Open Source programming tool set which is suitable for the development of native MS-Windows applications, and which do not depend on any 3rd-party C-Runtime DLLs. 不过上面的结论不是绝对的,比如: 当你使用MinGW GCC的-mthreads选项(和线程安全异常处理有关)时,就会动态链接到 mingwm10.dll。 还有如果你使用MinGW GCC 4.4.0默认选项编译C+程序,就会动态链接到libgcc_s_dw2-1.dll,参考下面:Dynamic linking with libgcc_s_dw2-1.dll is necessary to throw exceptions between different modules, such as between two DLLs or a DLL and an EXE. Consequently, it is the default for all languages other than C. To disable this dynamic linking, use -static-libgcc. To enable this dynamic linking in C, use -shared-libgcc. MinGW的POSIX界面远没有Cygwin实现的那么全面(比如:连BSD/Linux Socket都没有,只能用Winsock),所以看起来MinGW只是用来开发Windows专属应用的工具集。在版权上,MinGW比Cygwin更开放些。我用过MSYS和Cygwin之后,发现MSYS相比Cygwin还有很多不足:1. MSYS中的工具更像是Unix/Linux下的工具在Windows下的移植版,其中有些工具可以支持Windows的一些特征(比如:目录分隔用),而有些并没有Unix/Linux下原始的版本那么好用(比如:bash、sed等)。而Cygwin是努力在Windows下构建一套完全参照Unix/Linux体验的环境。2. MSYS中的工具很杂,和MinGW中的工具交织在一起(有时,开发工具和实用程序的界限并不是很截然,况且经常要配合使用),组织很松散,还有一些爱好者自己提供软件包。如此,搭建基于MSYS的Unix/Linux环境变得稍繁琐,你需要更加谨慎地考虑软件包的依赖关系。而使用Cygwin就方便多了,它的安装程序会归类显示软件包的组织关系,还能一定程度上帮你解决软件包的依赖关系。3.最后我选择了下面这种方式搭建Windows下的Unix/Linux开发环境:1. 使用Cygwin的Unix/Linux工作环境,比如:bash、tar、awk、sed、od、man等。2. 使用MinGW的C/C+开发工具,比如:binutils、gcc、gdb、make、strip等;使用MinGW的基础支持库,比如:GNU的libc、libstdc+、POSIX的基本调用界面等。3. 根据需要,使用额外的支持/开发库,比如:pthread、openssl、libiconv、gettext、boost、wxWidgets等。注意:1. 有些支持/开发库可以在MinGW项目的Sourceforge下载地址找到,像pthread(mingw gcc-4.4中包含)、openssl、libiconv、gettext等。也可以从这些库官方的项目地址,或其它的Windows移植版项目地址下载,总之,它们之间的联系比较松散。2. 如果有一些程序,在MinGW和Cygwin安装后有重复,可以用各种技巧设定它们被选择的优先级,比如:设置PATH环境变量中的搜索目录顺序,建立符号链接等方法。Eclipse开源的IDE环境,本身用Java实现,但绝不是只能作为Java的IDE,它有着丰富的扩展,当使用CDT后,Eclipse就成为强大的C/C+ IDE。Eclipse-CDT的源程序符号检索功能很强大,是我见过的最准确、最方便的C/C+符号检索功能,比SourceInsight、VC内置的Intellisense、VC的Visual Assist X插件都强大,比Emacs的CEDET模式中的Semantic的配置更方便。无论多么复杂的C/C+语法和工程配置管理,Eclipse-CDT都可以为你生成“当前工程的当前配置项”下的源程序符号索引数据库,帮你可以方便的查看/编辑源代码。不像SourceInsight和Visual Assist X,它们在解析像MFC那种“宏套宏”的奇怪语法时,或者在工程依赖、多配置项等复杂配置管理下就力不从心了。当然,Eclipse-CDT这种准确的符号检索功能是以“花费更长时间来生成索引数据库”为代价的:我为wxWidgets-2.8.10库工程建立源程序索引就用了1分钟左右,建立的索引数据库文件(.pdom)大小在35MB以上。当你频繁的在一个大工程的多个配置项之间切换时,这种速度慢的感觉就会更明显。不过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 国考题库综合及参考答案详解【模拟题】
- 税务局国考行测题库含完整答案详解【夺冠】
- 莱西市税务审计咨询方案
- 航天常识国考题库含完整答案详解(易错题)
- 贵州行测国考题库附答案详解(满分必刷)
- 西附七下数学期中考试卷及答案
- 防身知识培训课件
- 面向深度学习分类模型的对抗训练方法研究
- 国考行测题库比例附参考答案详解【培优】
- 晋城市人民医院面瘫针灸治疗考核
- 第四届全国智能制造应用技术技能大赛决赛仪器仪表制造工(仪器仪表与智能传感应用技术)赛项实操 样题(职工组、学生组)
- 家用电动啤酒酿造设备产品入市调查研究报告
- 2025届黑龙江省齐市地区普高联谊物理高一第一学期期中联考试题含解析
- 2025届广东省广州市天河区高三一模物理试题(解析版)
- 《护理文书书写》课件
- 衣食住行见证改革开放时代变迁-(修订)
- 书法鉴赏 (浙江财大版)学习通超星期末考试答案章节答案2024年
- 【培训课件】行政事业单位国有资产管理
- 六孔陶笛带歌词48首曲谱
- 电测应力应变实验课件ppt
- 大学生研究生就业方案
评论
0/150
提交评论