实时搜索: mingw cygwin 哪个好

mingw cygwin 哪个好

933条评论 2850人喜欢 3062次阅读 383人点赞
正常输入应该是这样,每到这个步骤我电脑却提示
gcc: 错误:hello.c:No such file or directory
gcc: 致命错误:没有输入文件
编译中断。 , 安装cygwin,在镜像文件中怎么没有gcc-mingw组件呢,如何解决? 急 ...

cygwin和mingw的区别: 1、从目标上说
MinGW 是让Windows 用户可以用上GNU 工具,比如GCC。
Cygwin 提供完整的类Unix 环境,Windows 用户不仅可以使用GNU 工具,理论上Linux 上的程序只要用Cygwin 重新编译,就可以在Windows 上运行。
2、从能力上说
如果程序只用到C/C++ 标准库,可以用MinGW 或Cygwin 编译。
如果程序还用到了POSIX API,则只能用Cygwin 编译。
3、从依赖上说
程序经MinGW 编译后可以直接在Windows 上面运行。
程序经Cygwin 编译后运行,需要依赖安装时附带的cygwin1.dll。
Cygwin是用一个dll模拟linux环境来“欺骗”应用程序,好像自己运行在linux环境下;而mingw是在编译时提供linux到windows必要代码的“翻译”转换,用到的还是windows运行时库。
在cygwin下编译出来的程序需要cygwin.dll才能在windows下运行,源码拿到linux环境下重新编译就可以在linux下跑起来;mingw环境下编译出来的程序,只能在windows下跑,源码在linux环境下编译多半通不过。

UnixUtils,GnuWin32,MinGW,Cygwin哪个好: 我用 mingw+gnuwin32 编译过 Emacs 和 ffmpeg.
cygwin按说也不错,不过cygwin的gcc编译出来的
东西依赖于 cygwin.dll(好像是这个名字),
打包的话还得带上它。mingw就不需要。

cygwin和mingw的区别: 1、从目标上说
MinGW 是让Windows 用户可以用上GNU 工具,比如GCC。

Cygwin 提供完整的类Unix 环境,Windows 用户不仅可以使用GNU 工具,理论上Linux 上的程序只要用Cygwin 重新编译,就可以在Windows 上运行。
2、从能力上说

如果程序只用到C/C++ 标准库,可以用MinGW 或Cygwin 编译。

如果程序还用到了POSIX API,则只能用Cygwin 编译。
3、从依赖上说

程序经MinGW 编译后可以直接在Windows 上面运行。

程序经Cygwin 编译后运行,需要依赖安装时附带的cygwin1.dll。

Cygwin是用一个dll模拟linux环境来“欺骗”应用程序,好像自己运行在linux环境下;而mingw是在编译时提供linux到windows必要代码的“翻译”转换,用到的还是windows运行时库。
在cygwin下编译出来的程序需要cygwin.dll才能在windows下运行,源码拿到linux环境下重新编译就可以在linux下跑起来;mingw环境下编译出来的程序,只能在windows下跑,源码在linux环境下编译多半通不过。

cygwin和mingw的区别: 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编译通过并运行。

在网上找的,不知道对不对

为什么我的WIN7运行cygwin和minGW 无法编译文本文.c.txt档成exe ,老是提示没有输入文件,编译中断: hello.c.txt 的.txt 去掉

还不行 用gcc hello.c -o xxx.exe 试试

mingw 有 windows 版的。 何必用cywin呢? 建议你下载一个codeblocks

如何在Windows上编译并安装ATLAS BLAS: 建议使用ScaLAPACK,先要补丁两个文件:先下载CYGWIN,把path这个环境变量里面mingw的路径替换成cygwin的路径,bash进入atlas的安装目录(就是install.txt所在的目录)
然后就是直接运行。

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。

镜像中没有gcc-mingw组件呢:


搜gcc,进Devel分支,选mingw-gcc-core组建,其他的你看着选

  • 云盘有什么用

    五心发热是怎么回事: 五心发热属阴虚内热。肾阴虚者,常见有面色发红,腰膝酸软而痛,眩晕耳鸣,齿松发脱;男子遗精、早泄,女子经少或闭经;失眠健忘,口咽干燥,烦躁,动则汗出,午后颧红,手足掌心发热,晚上出汗,大便乾结,形体消瘦,小便黄少,舌红...

    396条评论 6199人喜欢 3874次阅读 463人点赞
  • excel 数据 有效性在哪

    IEBOOK里文字的行间距如何修改: iebook里面不可以调行距的,不过这里面的字间距也不是很大,和一般的行距是一样的。如果你的行距太大了,可能是有其他原因导致的,你把文字复制到计事本里面过虑,排好后在复制到iebook软件里面看看。 ...

    847条评论 6588人喜欢 4629次阅读 267人点赞
  • 2016年4月国债利率是多少

    paypal website payment pro什么意思: paypal website payment pro支付宝网站pron.能手;行家;正面adj.专业的;赞成的adv.正面地prep.赞成例句用作名词 (n.)We'll teach you how to dribb...

    247条评论 3283人喜欢 1523次阅读 559人点赞
  • nba2k14 谁的名单好

    南昌市第五医院怎么样?: 太坑了,费用贵一半,情况都不问清楚就开始给开各种检查项目,检查项目收费单上没也不写清楚什么项目多少钱,太坑了,千万不要去垃圾私人医院 ...

    507条评论 4173人喜欢 5200次阅读 984人点赞
  • 0x10等于多少

    paypal注册地址第一行第二行啥意思: 你好,我是Paypal的Story第一行第二行并无特别的意思,是有的用户地址过长方便其输入。更多了解,我的ID ...

    420条评论 4586人喜欢 1416次阅读 795人点赞