0

我打算编写c/c++可以在控制台中运行的简单程序。我将在 Notepad++ 中编写代码,所以我不需要 IDE。我需要的是一个编译器,它将生成一个独立的 EXE 文件,该文件可以在任何2000/XP/Vista/7系统上运行,而无需安装VC9/cygwin/MinGW/.Net或其他额外的库。

据我了解GCC,它在 windows 上运行cygwin,所以它生成的任何应用程序也需要cygwin1.dll在它的存在下运行,对吗?

4

6 回答 6

4

您的主要选择是 MSVC 和 mingw。

  • 如果您想编写 C 代码,请避免使用没有真正 C 编译器的 MSVC,它只是围绕其 C++ 编译器的假包装器。哦,支持的方言接近 C89。
  • 如果您想编写 C++,那么 MSVC 很好,现代版本已经变得非常好并且合理地符合标准。
  • 如果您想根据您的问题同时编写 C 和 C++,那么 mingw 可能是最好的。

请注意,mingw 是 GNU 编译器的本机 Windows 端口,不需要 cygwin。mingw 的 32 位版本安装简单。如果您需要生成 64 位可执行文件,那么安装 64 位版本的 mingw 需要做更多的工作。同样,如果你想要 64 位模式下的免费 MS 编译器,你必须做一些肮脏的工作才能安装它。

使用所有这些选项,您可以静态链接运行时以避免将运行时部署到目标机器。

于 2011-12-18T19:56:37.307 回答
3

如果您安装了 Visual Studio Express(即使您不打算使用它),您将获得用于构建 C++ 代码的工具链。

如果您以本机代码为目标,它将在任何窗口上运行......您可能希望查看 WTL 之类的东西,以使执行窗口更容易一些。

此外,根据评论,平台 SDK 提供了完整的编译器工具链。SDK 的另一个好处是它有很多示例代码,适用于 Windows API 的各个方面。

于 2011-12-18T19:48:37.283 回答
2

Mingw gcc 编译器生成仅将 msvcrt 用于 C 运行时的本机二进制文件。这样就满足你的要求了。您可以使用 Visual Studio express,但这些将要求您提供与您的应用程序一起使用的 msvcrt 版本。

于 2011-12-18T19:53:50.147 回答
1

我使用了来自equation.com的 MinGW 包装版本的 gcc ,感觉就像是原生的。只需安装该单个文件并使用。

于 2011-12-18T20:11:36.870 回答
1

Open Watcom C/C++一开始可能是一件好事,但据我了解,它与 C++ 功能不同步(最明显的是在 STL 中似乎),我什至没有在谈论 C++11。

于 2011-12-18T19:53:18.007 回答
1

Visual C++ 编译器(包含在 Visual C++ Express、Visual Studio 和 Windows SDK 中)可以生成除了操作系统本身之外不需要任何支持库的二进制文件。使用静态链接。但是,最新版本不再支持 XP 之前的 Windows 版本(有一些变通方法,但它们并不干净,也不推荐用于非平凡的应用程序,最好的变通方法是在编写测​​试先决条件的安装程序时,所以它可以给出有意义的错误消息而不是崩溃)。

MINGW gcc 编译器也可以生成独立的二进制文件(仅依赖于操作系统)。

于 2011-12-18T19:53:47.193 回答