cygwin(CygWin是什么)

:暂无数据 2026-07-31 04:00:02 :0

cygwin(CygWin是什么)

大家好,今天小编来为大家解答以下的问题,关于cygwin,CygWin是什么这个很多人还不知道,现在让我们一起来看看吧!

本文目录

CygWin是什么

cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件(该公司开发了很多好东西,著名的还有eCos,不过现已被Redhat收购)。它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。随着嵌入式系统开发在国内日渐流行,越来越多的开发者对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模拟环境,是cygnus solutions公司开发的自由软件
cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件

docker与cygwin分别是什么

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
Cygwin是一个在windows平台上运行的类UNIX模拟环境,是cygnus solutions公司开发的自由软件(该公司开发的著名工具还有eCos,不过现已被Redhat收购)。
我也是初学者《Linux就该这么学》都是入门的基础知识,可以参考基础命令,查询命令

MinGW、MSYS、Cygwin分别是什么意思他们之间的关系是什么

MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC(GNU Compiler C)产生 Windows32 程序。 MSYS:Minimal GNU(POSIX)system on Windows,是一个小型的GNU环境,包括基本的bash,make等等。是Windows下最优秀的GNU环境。 cygwin是一个在windows平台上运行的unix模拟环境,是cygnus solutions公司开发的自由软件。 基本上Cygwin是提供了在windows上使用unix环境的套件不过开发程式的话编译出来的程式码是需要在Cygwin下才能正确执行虽然也是可以使用-mno-cygwin的flag MSYS & MinGW都包括了許多的子套件在里面首先MSYS是Minimal SYStem的缩写提供了类似Bourne shell环境下要编译程式的一些utility MSYS & MinGW都包括了许多的子套件在里头首先MSYS是Minimal SYStem的缩写提供了类似Bourne shell环境下要编译程式的一些utility像automake之类。 而MinGW則是Minimalistic GNU for Windows的缩写他包含了许多的compiler for windows、win32api等等是用來编译for windows的执行档用不像Cygwin编出來的程式必須在Cygwin下才能跑而MinGW则是Minimalistic GNU for Windows的缩写他包含了许多的compiler for windows、win32api等等是用来编译for windows的执行档用不像Cygwin编出来的程式必须在Cygwin下才能跑 因此可以看出因此可以看出

cygwin 和wingw的区别

Unix下编译通过的C代码,在win32下编译是不能通过的 ,当然Unix 和win32的API都是符合标准C,也就是说,大多数函数调用在unix和win32下是相同的.但是,unix有自己一些独特的API(如fork,spawn,signals,select,sockets等),如果代码中使用了这些API,在win32下当然找不到对应的库.
但是,这些API的功能在win32中也能实现,也许你已经发现了一个能让window编译Unix风格代码的方法:
1.修改编译器,让window下的编译器把诸如fork的调用翻译成等价的形式--这就是mingw的做法.
2.修改库,让window提供一个类似unix提供的库,他们对程序的接口如同unix一样,而这些库,当然是由win32的API实现的--这就是cygwin的做法.

MinGW相比CygWin/gcc来讲,更加贴近win32。因为它几乎支持所有的Win32API。它所连接的程序,不需要任何第三方库即可运行。
CygWin/gcc,其实这是两个东西。CygWin是一个让Windows拥有Unix-like环境的软件。而gcc就是安装在CygWin上的编译器。
CygWin/gcc与MinGW的最大区别在于:使用CygWin/gcc可以在Windows下调用unix-like的API,(如fork,spawn,signals,select,sockets等)。也就是说Cygwin是运行在Windows下的,但是她使用的是Unix-like系统的函数和思想。由于这个区别,导致的结果就是用CygWin/gcc编译出来的程序可以无缝的运行在*nix环境下。但是如果调用了unix特有的API函数,在windows环境下不能正常运行,如果想在windows下正常运行的,就必须依赖cygwin1.dll,速度上会有些影响。
而用MinGW编译出来的程序,如果源代码里面调用了unix环境的API,则MinGW会把这些对UNIX的API调用翻译成win32下等价的形式。同时这个程序是不能在windows下运行的。
说白了,如果你是想在windows环境下开发linux运行程序,那么CygWin/gcc是你的不二之选。
而如果你想开发的是windows运行程序,并且追求速度,那么二者相比而言,MinGW是更好的选择

我没有用过这两个工具,只是有点想选择一个来用,于是在网上比较一下两者有啥不同,然后选一个适合自己的。过程中,我发现网上一份文章可能被多个人转载,被多个人稍微修改后当成自己的随笔写出,误认不浅。
说一点,什么cygwin编译的程序可以无缝在linux上运行,根本就不能这么理解。
cygwin官方的一个定义是Cygwin is not a way to run native linux apps on Windows. You have to rebuild your application from source if you want it to run on Windows.
翻译过来就是
cygwin不是让linux程序能在windows上运行的方法,如果你想要让linux程序能在windows运行,那么你只有用cygwin来重新编译一下源文件。
这句话完全反驳了无缝运行在linux的说法。就是说你在linux上编译的elf程序不能直接拿到cygwin上运行,同样,你用cygwin编译的程序也不是linux的elf格式,而是exe格式,exe是无法在linux上运行的。
cygwin和mingw都是为用户提供在windows操作系统使用GNU工具的方法,使得在windows上可以编译为linux写的c源代码并运行(让你可以用signal等linux才有的api)。真正的不同在于
1,cygwin大,mingw小
2,cygwin编译后的exe需要cygwin1.dll作为支持,而mingw不需要就可以直接运行,因为有中间层所以cygwin慢,mingw快。
3,cygwin包含的内容更全面,能编译通过的linux源文件更多,mingw的min是minimalist所以能编译通过的更少。但,不是全部,就是说别指望你可以把任何为linux写的源代码在cygwin或mingw编译通过并运行。

What Is Cygwin?

Cygwin is a Linux-like environment for Windows. It consists of two parts: A DLL (cygwin1.dll) which acts as a Linux API emulation layer providing substantial Linux API functionality.
A collection of tools which provide Linux look and feel.

The Cygwin DLL currently works with all recent, commercially released x86 32 bit and 64 bit versions of Windows, with the exception of Windows CE.
Note that the official support for Windows 95, Windows 98, and Windows Me will be discontinued with the next major version (1.7.0) of Cygwin.

What Isn’t Cygwin?

Cygwin is not a way to run native linux apps on Windows. You have to rebuild your application from source if you want it to run on Windows.
Cygwin is not a way to magically make native Windows apps aware of UNIX ? functionality, like signals, ptys, etc. Again, you need to build your apps from source if you want to take advantage of Cygwin functionality.

MinGW: A collection of freely available and freely distributable Windows specific header files and import libraries combined with GNU toolsets that allow one to produce native Windows programs that do not rely on any 3rd-party C runtime DLLs.
MinGW:根据我的理解,它是一个Windows下的编译器(实际上是一系列开发工具)。与Windows下其它编译器不同的是,MinGW与Linux下广泛使用的GNU(基本上)完全兼容,这意味着,在Linux下如何编译源代码,在MinGW中也可以以完全相同的方式编译。
我个人以为,MinGW的出现是有原因的:有些Linux下的开发人员(比如开源阵营)发布的源代码通常只提供Linux下的编译方式,而不提供Windows下的编译方式(这可能与其不熟悉windows操作系统有关),但确实有不少用户需要在在Windows下编译使用此源代码。这在种情况下,如果Windows用户想用VC、BC等编译器编译该源代码,必须重写Makefile(各种编译器所支持的Makefile不尽相同),工作量比较大不说,还很难保证不出错。MinGW的出现,提供了两个平台下的“跨平台编译方案”。MinGW与MSYS相配合,连./configure都有了。与GNU不同的是,MinGW编译生成的是Windows下的可执行文件(.exe)或库文件(.dll,.lib)——不过编译过程中的的中间文件仍然是.o文件,而不是.obj文件(这当然无所谓了,中间文件嘛,编译完成后就没有用了)。MinGW好像是在Cygwin基础上发展而来的。顺便说一下Cygwin,它与MinGW在想法上基本是一致的,两者相比,Cygwin是重量级的(需下载50M以上直至数百兆不等,安装后占用空间可达1G),MinGW是轻量级的(需下载的文件只有20M,安装后70M左右),这是单纯从体积上说的,另外Cygwin现在据说也不是完全免费的了。
wxWidgets-2.6.2在Windows下的编译方式。用VC编译的话,有两种方式:VC工程,Makefile。前者就不用说了,用VC打开*.dsw文件,F7就可以了。这里说一下Makefile的编译方式,首先进入命令行窗口(cmd.exe 或 command.exe),切换路径到wxWidgets源代码所在目录下的 build/msw 子目录,执行“nmake -f makefile.vc”即可。用MinGW编译的话,基本上与前面类似,也是进入命令行窗口(cmd.exe 或 command.exe),切换路径到wxWidgets源代码所在目录下的 build/msw 子目录,只是执行的命令行是“mingw32-make -f makefile.gcc”。最终生成的库文件位于lib目录中。当然,编译之前可能需要设置一下,比如指定编译为动态库(DLL)还是静态库(LIB),或者是否采用UNICODE,等等,设置方式就是修改 build/msw 子目录中的 config.vc 或 config.gcc 文件。
VC6和MinGW相比,两者在编译速度,以及在编译后的文件的大小方面都有较大不同。根据我编译wxWidgets时所做的简单统计,VC6的编译速度比MinGW至少快一倍,VC6编译生成的动态库DLL文件比MinGW小一倍左右,VC6编译生成的静态库LIB文件比MinGW要大不少(大约是1.5倍)。下面的图片两者编译生成的文件大小的对比,左侧是VC6生成的,右侧是MinGW生成的,图一是编译生成动态库DLL的情况,图二是编译生成静态库LIB文件的情况:

总起来说,在Windows系统下,还是用VC编译比较合适,没办法的情况下才会选择MinGW。

cygwin 路径/user在哪

  首先,大家安装完后如果第一次启动会看到窗口提示正在创建用户的三个文件分别是.bashrc
.bash_profile和.bashrc。这时大家到自己的cygwin安装目录下(默认为c:\cygwin下)一定会发现一个home目录,并且在home目录下建立了上面三个文件。

而通常xp下则不会创建这个home目录,至于具体原因可以去读一下我置顶文章里的解释,这里不再重复,解决方法如下

右键我的电脑,属性,高级,环境变量,在你自己的用户变量列表中找到HOME变量,删掉它。关掉cygwin后重启,就一定会看到系统开始创建home目录和三个配置文件。

但是,由于很多原因,比如说有的人在自己的用户环境变量里找不到HOME这个变量(寒,还是重装系统吧,orz)可能cygwin就是不能给我们生成/home文件,我们一样可以解决这个问题。其实只要明白我们为啥要找/home文件夹,这个问题就好解决了?主要想要里面的.bashrc文件。所以重要的不是这个/home文件夹,而是哪里能设置我们需要的cygwin的环境变量。这时要做的一件事就是首先弄清楚,cygwin默认的你的/home文件夹到底在哪里?这个确认很简单。

1.进入cygwin后,打pwd命令后,返回的一定是你的默认home路径。正常情况下是/home/yourid(完整路径为c:\cygwin\yourid)。完整路径的获得方法则是输入
cygpath -dm “`pwd`“ (pwd的里层引号是1左边的那个键的大写符号)就可以了。

2.或者你可以输入env命令,找到HOME这一项,可以看到HOME=...,等号后面的就是你现在的默认home路径。

只要知道这个默认的home路径,问题解决起来就容易多了。我们只要把三个配置文件拷贝到这个默认的home目录下,问题就解决了。那你会问这三个配置文件哪里找去?打开C:\cygwin\etc\skel目录,你就会发现它们静静的躺在那里。这三个文件就是cygwin一开始为用户准备的。把这三个文件拷贝到你的home目录下就可以了,然后用文本器打开.bashrc文件,把你需要设定的环境变量和参数写在这里,保存后重新启动cygwin就可以看到已经生效了。

cygwin和mingw有什么区别么

所以完全可以和linux一起同步更新gcc版本,而不用担心问题,并且在cygwin/gcc做的东西(不用win32的)可以无缝的用在linux下,没有任何问题。是在windows下开发linux程序的一个很好的选择。但是在cygwin/gcc下编译出来的程序,在windows执行必须依赖cygwin1.dll,并且速度有些慢,如果不想依赖这个东西的化,必须在gcc的编译选项中加入-mno-cygwin。加入这个选项其实gcc编译器就会自动的选择在安装cygwin/gcc时安上的mingw,这个mingw就是gcc的一个交叉编译。 对于mingw作为gcc在windows上的一个实现,由于不像cygwin的gcc在一个模拟linux上运行,同时相当一部分linux的工具不能够使用,不过现在已经有Msys这个模拟unix的shell,可以解决很多的问题,不过没有cygwin好用,而cygwin/gcc的no-cygwin选项又依赖于mingw的支持,所以更新的更慢的,现在只是到3.3.3。在mingw下也是可以升级gcc的,不过需要使用msys。升级方法和在cygwin和linux下差不多,就不再罗嗦了。不过就我的升级经验来看好像都不太顺利。具体深入的测试,我也没有时间做了。 也是可以让cygwin的最新安装的gcc支持no-cygwin,需要再做一遍交叉编译,但是我不会做,只好算了,呵呵,也许那一天我把这个搞定,再开一个贴吧。 根据以上的分析,如果在windows开发linux程序,cygwin是很好的选择。如果你开发的程序不介意有一个cygwin1.dll的话,也是可以选择cygwin的。如果你是想开发windows下的程序,还要必须用gcc的化,mingw是很好的一个选择。但是在windows下有太多的编译器了,bc,vc,intel c.....。 顺便说就题外的化,据说gcc4.0.0性能有很大的提升,如果我升级完gcc4后,再编译一把gcc4是不是以后的编译性能会提高很多呢?有机会一定要测试一下了,呵呵。

cygwin与虚拟机下装linux有什么区别

cygwin 是一个 POSIX 兼容层。
Linux 是一个内核,Linux 系统上层是 GNU 软件。
两个本质毫无是无关关系的。

cygwin 的本质是提供一个基本函数接口,来让软件源代码可以不经修改或者小修改就可以在 Windows 上面编译使用。但其实这个实现,就是 POSIX (可移植操作系统接口 Portable Operating System Interface,缩写为POSIX,多了个X)本身的设计目标。Windows 不支持 POSIX ,但其实微软发布过 POSIX 兼容组建。
只是 cygwin 这个兼容层基本都是抄 Linux 的软件实现,所以你可以在 cygwin 上面用兼容 Linux 的软件源代码来使用(注意是源代码不是本地运行)。而且 cygwin 也直接移植 Linux 上面常用的软件,所以使用感受和操作方法也基本类似 Linux 。

但 Cygwin 绝对不是 Linux 。他也不是虚拟机。

TDengine Server端不支持windows平台,是否可能通过cygwin打包成可在windows上运行

可以试试在windows docker环境下运行,拉取tdengine/tdengine镜像,在docker中运行。

如果后续有问题,可以在GitHub上递交Issue:网页链接

如何在cygwin中启动X窗口

我的cygwin是1.5.25-15perl版本是v5.10.0操作系统win732位旗舰版你给出的程序是想由标准输入读入多行,然后把1234567890输出3遍,再把读入的信息输出。我把程序拷出来,把第一行换成#!/usr/bin/perl-w就可以正常执行了。输入完成后,需要按ctrl+d

OK,关于cygwin和CygWin是什么的内容到此结束了,希望对大家有所帮助。

cygwin(CygWin是什么)

本文编辑:admin
: cygwin

更多文章:


字母f是什么意思?如何将flash变成透明的背景

字母f是什么意思?如何将flash变成透明的背景

本篇文章给大家谈谈f,以及字母f是什么意思对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 10:50

turtles歌曲(哪位大神有turtles(乌龟组合)的<谢谢>的歌词中文翻译 感激不尽)

turtles歌曲(哪位大神有turtles(乌龟组合)的<谢谢>的歌词中文翻译 感激不尽)

“turtles歌曲”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看turtles歌曲(哪位大神有turtles(乌龟组合)的的歌词中文翻译 感激不尽)!

2026年10月11日 10:00

java转义字符(java中的转义字符的作用是什么)

java转义字符(java中的转义字符的作用是什么)

其实java转义字符的问题并不复杂,但是又很多的朋友都不太了解java中的转义字符的作用是什么,因此呢,今天小编就来为大家分享java转义字符的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年10月11日 09:40

金山铁路22号线(请问现在轨道交通22号线金山铁路是个什么情况据说9月28日就开通了啊~~~)

金山铁路22号线(请问现在轨道交通22号线金山铁路是个什么情况据说9月28日就开通了啊~~~)

“金山铁路22号线”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看金山铁路22号线(请问现在轨道交通22号线金山铁路是个什么情况据说9月28日就开通了啊~~~)!

2026年10月11日 09:10

repercussions(都是余波,repercussions和aftermath有什么区别啊)

repercussions(都是余波,repercussions和aftermath有什么区别啊)

今天给各位分享都是余波,repercussions和aftermath有什么区别啊的知识,其中也会对都是余波,repercussions和aftermath有什么区别啊进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年10月11日 09:00

dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

dropdownlist 绑定(DropDownList 绑定所有项 并 显示指定项)

本篇文章给大家谈谈dropdownlist 绑定,以及DropDownList 绑定所有项 并 显示指定项对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月11日 08:50

协方差计算公式(协方差的计算公式)

协方差计算公式(协方差的计算公式)

这篇文章给大家聊聊关于协方差计算公式,以及协方差的计算公式对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 08:10

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

易语言网页api接口怎么调用(易语言,怎么读取网页json的api)

本篇文章给大家谈谈易语言网页api接口怎么调用,以及易语言,怎么读取网页json的api对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年10月11日 08:00

majority of(the majority of 和 a majority of的区别以及用法例句)

majority of(the majority of 和 a majority of的区别以及用法例句)

这篇文章给大家聊聊关于majority of,以及the majority of 和 a majority of的区别以及用法例句对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

2026年10月11日 07:40

汉字机内码查询表(1个汉字的机内码是几位谢谢)

汉字机内码查询表(1个汉字的机内码是几位谢谢)

大家好,关于汉字机内码查询表很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于1个汉字的机内码是几位谢谢的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!

2026年10月11日 07:20

最近更新

热门文章

标签列表