基本上我想在Windows上使用GCC编译C / C ++。正如我所看到的,两个竞争平台是MinGW和Cygwin。每个都有自己的好处和限制。 MinGW为Windows编译,而Cygwin需要cygwin .dll。但是在MinGW上安装库很困难,而在cygwin上使用setup.exe作为“包管理器”则更容易。
我的问题是在Windows上编译的最佳方法是什么。使用MinGW并与图书馆斗争会更好(在这种情况下,有一种简单的方法可以在MinGW上安装库)。或者我应该使用Cygwin,如果是这样的话,如何在不需要cygwin .dll的情况下编译它,有效地编译正常的Windows。
答案 0 :(得分:7)
在Windows上编译的最简单和最好的方法是使用visual studio expres。这是免费的。使用cygwin的一个很好的理由是跨平台构建。使用gcc的一个很好的理由是它支持微软编译器没有的一些编译器糖果。
但是所有VC ++ Express都是开发Windows的方法。
答案 1 :(得分:5)
总是可以选择使用-mno-cygwin
和Cygwin一起编译像MinGW这样的Windows库:
gcc -mno-cygwin file.c -o test
这不是一个简单的选择,主要取决于您将依赖其他库的程度。 Cygwin确实添加了一个额外的层,它比MinGW更重,但“更好地”模拟Linux环境。
编辑:
Qt Creator允许你在Windows上使用MinGW进行编译(在Linux上使用gcc,...),有一个IDE,它使调试比gdb更友好。如果您需要库,您仍然可以选择使用Qt库。如果您真的想坚持使用gcc以便将来移植,那将是Visual Studio的一个很好的替代解决方案。
答案 2 :(得分:3)
您可能需要查看CodeBlocks。它通常用于构建WxWidgets应用程序,但它很好地包装了MinGW。
答案 3 :(得分:1)
Qt Creator标配MinGW,可用于构建实际不使用Qt框架的项目。
答案 4 :(得分:1)
实际上,有选项#3:如果您的Windows版本允许,您可以安装Microsoft Services For Unix / Subsystem for Unix Applications,然后从SUACommunity获取gcc。它也有一个包管理器。在这3个选项中,这将为您提供最接近真正Unix系统的行为。
但是,生成的应用程序不是Win32应用程序;它们是SUA应用程序,需要SUA才能运行。如果你自己编写代码,如果你自己编写代码通常不是问题,但是如果你想编写和发布一个合适的Windows应用程序,我建议远离任何试图模仿Unix的东西,所以MinGW就是这样。
答案 5 :(得分:0)
在equation.com有一个易于安装的MinGW包装GCC。 单击“编程工具”,然后单击“Fortran,C,C ++”,下载您喜欢的版本,安装并使用。
答案 6 :(得分:0)
一种可能的方法是使用CMake,它可以从您的源构建Visual Studio项目,然后从Visual Studio进行编译。它也可以为其他IDE构建项目,因此您可以跨平台。
答案 7 :(得分:0)
我认为答案取决于您是打算使用库还是编译针对POSIX或基于POSIX的目标的程序。这就是Cygwin的目的,而MinGW更倾向于使用GCC编译以Windows为目标的程序。
答案 8 :(得分:0)
另一个选择是TDM MinGW:http://www.tdragon.net/recentgcc/
它基本上是MinGW的非官方分支,最新的GCC编译器可用于32位和64位Windows机器。甚至一些MinGW开发人员自己也使用它。
公式Gcc甚至更好:http://www.equation.com/servlet/equation.cmd?fa=fortran