Cygwin简介
Cygwin是一个在Windows系统上运行的Unix模拟环境,最初由Cygnus Solutions开发,源码旨在为该操作系统提供一种运行类似Linux、源码BSD等POSIX系统软件的源码能力。其目标是源码通过重新编译,将这些系统上的源码加符号的源码软件移植到Windows NT、Windows 、源码Windows XP和Windows Server 上,源码尽管在较早的源码Windows版本如Windows 和Windows 上可能表现欠佳。目前,源码Cygwin的源码维护工作主要由Red Hat等公司负责。 Cygwin的源码价值在于为Windows用户提供了一个学习和实践Unix/Linux操作环境的机会,特别适合那些需要从Linux到Windows应用程序移植,源码或者进行特定开发任务的源码开发者,如嵌入式系统开发。源码通过使用GNU工具集,开发者能够在Windows上实现类似在Unix系统中的工作流程,这在嵌入式系统开发日益普及的今天,愈发受到中国开发者们的关注和青睐。 Cygwin的创新在于,它首先对GCC、GDB、GAS等开发工具进行了改进,使其能够生成并解释Windows 位的目标文件。为了简化移植过程,Cygnus没有对这些工具的源代码进行大幅修改,而是openstack源码分析创建了一个名为Cygwin DLL的共享库,模拟了Unix风格的API调用,如fork、spawn、信号处理、选择和套接字等。这样,开发者只需将工具与Cygwin DLL连接,就能使用Unix主机上的编译器在Windows上构建工具集。基于这个基础,Cygwin逐步将更多软件移植到了Windows,让Windows用户体验到了与Linux相似的工作环境。扩展资料
cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对cygwin产生了兴趣。å¦ä½ä½¿ç¨cygwinç¼è¯ ffmpeg
4ï¼ç¶åå¨mingwçæ§å¶å°ä¸è¿å ¥ffmpegæºç ç®å½ï¼å¹¶æ§è¡å½ä»¤ï¼./configure--enable-memalign-hack çæç¼è¯æ¶æéçMakefileæ件ãç¶åæ§è¡ make å½ä»¤ï¼å°±å¯ä»¥çæç¸åºçexeæ件ï¼å¦ffmpeg.exeã ffplay_g.exeãffmpeg_g.exe çã
cygwin包列表中gcc和mingw-gcc包的区别以及源码编译
cygwin主页有个包列表,不仅有gcc-xxx包,还有一系列mingw-xxxx的包(比如mingw-binutils、mingw-gcc),此外mingw官网也提供gcc,将这3种gcc分别命名为①②③。
查看到的内
Cygwin系列(四):一步一步搭建Cygwin最小系统
本文共余字,阅读约需分钟,界面库源码本文知乎链接:Cygwin系列(四):一步一步搭建Cygwin最小系统:本文同步发布于微信公众号。
经过前面连续4篇文章对Cygwin的充分介绍,相信你对Cygwin也有了准确认识,本文将带你一步一步搭建Cygwin最小系统环境。
UNIX/Linux系统上,二进制程序文件、函数库、文档、源代码等通常是按照软件包(Package)的形式组织,一个软件包是一个或多个应用程序、函数库、帮助手册页、文档组成的压缩档。Cygwin继承了先辈UNIX/Linux系统的优良传统,也采用这种方式。
Cygwin由核心的Cygwin DLL(被包装在cygwin包中)和基于Cygwin DLL移植GNU、BSD等开源项目的海量软件包组成。那么,怎么有效管理这些软件包呢?一股脑全部一起打包发布不是一个明智的选择,不仅要消耗很大的网络流量和硬盘空间,而且用户也不是所有的软件包都需要用到。 Cygwin系列(二):初窥Cygwin背后 中说过,年4月,项目宣布了新的发布方式:额外提供一个不依赖于Cygwin的Windows原生程序——setup.exe,与Cygwin DLL独立,用于安装、空包网站源码更新、卸载软件包。从功能角度讲,setup有点“名不符实”,或许叫“Package Manager”更恰当。
Cygwin发展到支持位,包管理器、软件包也自然分成位和位两套。位的包管理器程序为setup-x.exe,位的为setup-x_.exe,x和x_分别是位和位指令集代称。以下未明确/位硬件平台时,setup泛指其中一个。
为特别区别于Windows程序安装卸载习惯,在此再强调,setup不是一次性的安装卸载程序,而是可用于安装、更新、卸载软件包的包管理器,负责软件包在本地从生到死!后期对软件包的所有管理操作都可以通过setup完成。
Step 0:事前准备工作
进入 Cygwin官网找到“Installing Cygwin”,下方文字介绍中有setup-x.exe和setup-x_.exe链接,按自己需求选择其中一个下载即可,建议选择位版本。
为使文件不显得杂乱,发卡源码php在d盘新建一个文件夹Cygwin,把setup-x_.exe也放入其中,当然你也可以把文件放在任何其他的地方,路径最好不含空格。为方便描述,以下称“d:\Cygwin”为CYG_ROOT,$CYG_ROOT表示对字符串“d:\Cygwin”的引用。
Step 1:选择安装方式
双击运行setup,可以看到setup自身的版本是“2.( bit)”。
点击“下一步”,如图显示3种安装方式:
①“Install from Internet”是指从Internet下载并安装,下载的安装包同时也保留在硬盘中并不删除;
②“Download Without Installing”意思是仅下载,供后期再安装;
③“Install Local Directory”是指从本地安装,如果前期选择了②,现在选择③即可。
把②和③两步合并,效果就是①;此处由于是从零开始,选择①。
Step 2:路径设置
点击“下一步”之后进入Step2,选择安装顶层路径——Root Directory。setup可以探测到自己所处的路径,即$CYG_ROOT,一般不用再更改;默认勾选为所有用户安装(Install for All Users)。
点击下一步,选择本地软件包存放路径,同样可按照默认设置为$CYG_ROOT。
Step 3:选择网络连接方式
点击“下一步”之后进入Step3,网络连接类型按默认选择,即直接连接(Direct Connection)即可。
Step 4:添加/选择下载站点
点击“下一步”之后进入Step4,选择下载站点,除了Cygwin官方网站,还有很多站点提供了软件仓库(repository)的镜像,分布于世界各地,setup内部记录了很多已有的站点,但没有大陆地区。用户还可以自行添加,下面的Add按钮就是用来添加新站点的。仅列出国内几个比较常用、速度较快、连接较稳定的Cygwin镜像站点:
将镜像站点URL地址填入编辑框,点击“Add”按钮,镜像站名称即出现在选择列表中,下一次再来直接选择就行,注意到列表显示内容移除了URL路径,只保留了协议和主机名。此时发现,setup建立了$CYG_ROOT\var\log路径,用于记录本次安装过程相关日志。
点击“下一步”,setup开始下载站点的setup.ini文件,这个文件最终保存在$CYG_ROOT\%2fcygwin%2f\x_路径下,其中%2fcygwin%2f是按照站点主机名建立的路径。
每个站点上同时有x(位)和x_(位)两套软件仓库,所以在站点名后面有继续建立x_文件夹。setup.ini记录着软件包功能描述、版本、依赖等信息,可看做是一个软件包索引数据库。
Step 5:筛选软件包及操作
点击“下一步”之后进入Step5,筛选软件包及操作。Cygwin软件包被按照用分类组织,点击“View”旁边下来框,选择“Category”,看到有Accessibility、Admin、Base、Devel、Doc等多个类别,一个软件包可以属于一个或多个类别。点击类别前的“+”,可展开查看下面的各个软件包。
软件包信息分成了几栏展示:
为构建最小系统,这里选中Base(基本)类别,执行动作为Install,看到Base类别中包含了alternatives、base-cygwin、base-files、bash、coreutils、cygwin、mintty、util-linux等等最个软件包。点击“下一步”,setup开始针对软件包进行依赖解析(这些信息就存储在setup.ini文件中),并把软件包依赖的所有软件包也全部添加进来,可以看到“依赖”中有大量以“lib”开头的库文件。
Step 6:执行安装
点击“下一步”之后进入Step6,执行安装。setup开始下载软件包,并在左上角显示整体进度百分比。可以看到$CYG_ROOT \ %2fcygwin%2f\x_\release\目录下多了很多子目录,子目录按照软件包独立组织,里面就存放着软件包的压缩文件。
setup自动进行下载、安装,安装完成后自动跳转至最后一步,选择是否创建快捷方式和添加到开始菜单,可以都勾选上,最小系统的整个安装过程就此结束。
安装结束后,可以看到在$CYG_ROOT目录下,增加了bin、dev、etc、home、lib、tmp、usr子目录,软件包主要安装到bin、lib、usr中,配置文件安装到dev、etc中,home存放用户个人文件。
让系统跑起来
安装完成后,桌面上多了一个名为“Cygwin Terminal”的快捷方式,双击运行,看到一个黑色框框里面输出一些已创建文件的信息,并打印提示符,等待用户键入命令。这个黑框框便是终端模拟器——mintty,mintty启动了shell与用户交互。输入“help”并回车看看得到什么,再输入“ls /”并回车看看得到什么,如果没有报错说明最小系统已经能跑起来。
第一次使用时,home目录下创建了一个以Windows登陆用户命名的文件夹,被称为用户个人目录($HOME),个人文件都默认放在这里,Cygwin的shell启动后默认进入的工作路径也是这里。
后记
从整个安装过程也看出,setup本质是一个软件包的管理工具,亦即“包管理器”,用户通过图形界面可以方便地进行安装、卸载、重装、升级等工作。setup也支持在命令行中运行。
最小系统跑起来以后,后期还想安装其他的软件包,重复Step 1至6的过程,中间注意选择要安装的软件包即可。
最小系统经过压缩,其大小不过约几十MB。Cygwin技术交流群()共享文件中同时提供位和位最小系统,解压即可用。
UNIX/Linux/Cygwin上的逻辑、操作习惯与Windows有着巨大差异,在Cygwin中要培养以shell命令行为中心的操作习惯,暂时抛开Windows下的惯性思维。
2024-12-29 00:03
2024-12-29 00:02
2024-12-28 22:32
2024-12-28 22:28
2024-12-28 22:19