Gcc 明威为什么存在?

Gcc 明威为什么存在?,gcc,mingw,Gcc,Mingw,MSYS和类UNIX将系统分开构建;明威为什么存在?我的意思是,为什么win32/64不是“香草GCC”中可用的另一个目标?这是技术原因还是“政治原因”?在我看来,Windows平台并没有什么特别之处,使得它的GCC端口与原始GCC“不兼容”。Mingw不仅仅是编译器,还有库和头文件(以及您可能需要的任何其他支持文件) GCC只是一个编译器。Mingw是一个完整的环境。好吧,虽然您可以使用交叉编译器从GCC生成win32/64二进制代码,但必须有人将所有C运行时库移植到不同的环境中。Mingw和

MSYS和类UNIX将系统分开构建;明威为什么存在?我的意思是,为什么win32/64不是“香草GCC”中可用的另一个目标?这是技术原因还是“政治原因”?在我看来,Windows平台并没有什么特别之处,使得它的GCC端口与原始GCC“不兼容”。

Mingw不仅仅是编译器,还有库和头文件(以及您可能需要的任何其他支持文件)


GCC只是一个编译器。Mingw是一个完整的环境。

好吧,虽然您可以使用交叉编译器从GCC生成win32/64二进制代码,但必须有人将所有C运行时库移植到不同的环境中。Mingw和Cygwin都是为此目的而创建的。

Mingw旨在方便地将Posix应用程序移植到windows。它只是一个比CygWin“更薄”的层,所以并不是所有的东西都能在windows差异太大的地方工作。CygWin允许提供足够的隔离,即使是构建和生成代码的脚本工具也可以运行

编辑: 微软非常喜欢制定自己的标准,并希望在已经存在开放标准的东西上树立自己的品牌。i、 OpenGL->DirectX,Java->.net,OpenCL是他们想要抛弃的下一个标准。这让他们有点痛苦的非赞助项目,以支持他们为目标。他们总是拒绝任何允许轻松跨平台开发的东西,因为他们只希望你为他们的操作系统开发应用程序。这是一种营销策略,控制品牌,控制平台,让人们难以支持其他操作系统。MingW是必需的,因为GCC可以生成x86代码,但即使是最基本的运行时支持也不同于基于Posix的操作系统。

来自MingW的主站点

该套件以易于安装的二进制软件包格式提供,用于MS Windows上的本机部署,或用户从源代码构建,用于Unix或GNU/Linux上的跨主机使用,它利用Microsoft的标准系统DLL提供C-Runtime和Windows API


GCC是编译器的集合。这是否意味着我可以下载GCC源代码,编译一个针对win32/64的编译器,并用它编译代码(除非没有库和头)?您可以构建一个编译器来创建PE文件,因此,您真正缺少的是库和头,以便能够使用它们做任何有用的事情。你也会错过像CRT0这样的东西。这是一个多么迫切的问题。也许这就是为什么那些吃饭的哲学家总是闲逛的原因。