【问题标题】:C compiler for Windows? [closed]Windows 的 C 编译器? [关闭]
【发布时间】:2010-09-12 02:18:05
【问题描述】:

我很好地使用 gcc 作为我的 C 编译器在 Linux 上工作,但我想要一个 Windows 解决方案。有任何想法吗?我查看了Dev-C++ from Bloodshed,但正在寻找更多选择。

【问题讨论】:

标签: c windows compiler-construction


【解决方案1】:

MinGW 将是 gcc for windows 的直接翻译,或者您可能想使用 IDE 查看LCC,vanilla c(或多或少)。 Pelles C 似乎基于 lcc 并且有一个更好的 IDE,虽然我没有亲自使用它。当然,MSVC 的Express Edition 总是免费的,但那是你的电话。

【讨论】:

    【解决方案2】:

    如果您想要针对 Win32 的产品,您可以直接从 Microsoft 获得 Visual C++ Express Edition。否则 MinGW 或 lcc,如其他地方建议的那样。

    【讨论】:

    • Visual Studio 很棒,但如果他们在课堂上使用 linux/gcc,那可能不是最佳选择。
    • 问题在于 C 和 C++ 是不同的语言。 C 代码并不总是在 C++ 中工作。
    • 我相信Visual C++也有C模式编译器。
    • Stroustrup 在这里澄清了这一点:public.research.att.com/~bs/bs_faq.html#C-is-subset 我认为最糟糕的部分是字符和整数的 sizeof() 不匹配,以及 C++ 中添加的关键字。
    • 正如@Richard 在 cmets 中所说:VC++ 缺乏 C99 特性。
    【解决方案3】:

    您可以通过下载MingW已停产)或其继任者Mingw-w64 在 Windows 上使用 GCC。

    【讨论】:

    • stackoverflow.com/questions/29205033/… - 但是在 Windows 中使用 MinGW 并不能解决处理 LibVLC 和 Gstreamer 的问题。通过使用 MinGW 使可执行文件崩溃。有没有更好的解决方案?
    • 虽然 mingw 是一个很棒的项目,但当我想编译 Windows exec 时它并不适合我。在 Linux 中。
    【解决方案4】:

    必须 Windows C++ 编译器才能工作。

    另外,请查看MinGW

    【讨论】:

    • C != C++。存在一些差异,因此并非所有 C 代码甚至都可以在 C++ 中编译。
    【解决方案5】:
    【解决方案6】:

    你总是可以通过 cygwin 使用 gcc。

    【讨论】:

    • 这会将您的应用程序绑定到 Cygwin DLL,在我看来,这真的很烦人。
    • 我同意,但如果应用程序有安装程序,可以捆绑 dll。
    • 在 cygwin 下编译时使用 --mno-cygwin 选项。这使得它可以编译 MinGW 二进制文件;不需要 Cygwin DLL。
    • -mno-cygwin 不再受支持 - 改为安装适合您平台的 MinGW 交叉编译器包
    【解决方案7】:

    Cygwin 在 Windows 上提供完整的 GCC 支持;此外,免费的 Microsoft Visual C++ Express Edition 也可以很好地支持“遗留”C 项目。

    【讨论】:

      【解决方案8】:

      GCC 工作正常。请注意,MSVC 不一定是有效的解决方案,因为它不支持 C99。

      【讨论】:

      【解决方案9】:

      Visual C++ Express 是一款适用于 Windows 的精美免费 IDE,带有编译器。

      如果您对一般的命令行解决方案(尤其是 gcc)更熟悉,MinGWCygwin 可能更适合您。它们也是免费的。

      【讨论】:

        【解决方案10】:

        我个人一直在研究通过 Code Blocks IDE 使用 MinGW(Bloodshed 使用什么)。

        我也在考虑使用Digital Mars C/C++ 编译器。

        两者似乎都受到好评。

        【讨论】:

        • Digital Mars C/C++ 已经存在了一段时间并且表现良好。但是,您会遇到库的链接问题,因为它使用了一种不太常见的目标文件格式。如果你能得到源代码那不是什么大问题。另外,我从未使用过它们,但有文件格式转换器工具。
        【解决方案11】:

        GCC 无处不在。它受到数十个社区的数千人的信任和充分理解。

        Visual Studio 可能是有史以来最好的 IDE。它下面有一个很棒的编译器。但它严格来说仅限 Windows。

        如果您只是在玩,请获取 GCC——它是免费的。如果您担心多个平台,那就是 GCC。如果您正在谈论严肃的 Windows 开发,请获取 Visual Studio。

        【讨论】:

        • 现在Visual Studio Code 是跨平台的,功能大致相同。
        • Visual Studio is perhaps the best IDE。我更喜欢 JetBrains IDE 产品(IntelliJ、PyCharm、CLion、...)。
        【解决方案12】:

        小心使用 C 编译器,而不是 C++,如果你真的在使用 C。虽然 C 中的大多数程序都可以使用 C++ 编译器工作,但有足够的差异可能会出现问题。我同意那些建议通过 cygwin 使用 gcc 的人。

        编辑:
        http://en.wikipedia.org/wiki/Compatibility_of_C_and_C%2B%2B 显示了一些主要差异

        【讨论】:

        • 您能否详细说明“足够的差异”?
        • 任何 C++ 编译器也会编译 C - 通常编译器模式会根据文件扩展名自动选择,但每个编译器也可以选择强制 C 或 C++ 模式而不管文件名。跨度>
        【解决方案13】:

        这取决于你在课堂上使用的内容。

        如果实验室和作业在 linux 中,那么您可能需要 MinGW 解决方案。如果它们在 Windows 中,请获取 Visual Studio Express。

        【讨论】:

          【解决方案14】:

          您不能从学校获得免费版本的 Visual Studio Student Addition 吗?大多数大学都有向学生提供免费软件的计划。

          【讨论】:

          • 不,他是对的。有一个特殊的程序叫做“Dream Spark”,并不是说我会支持微软这种鬼鬼祟祟的东西。
          【解决方案15】:

          有一些 cmets 指出 C 不是 C++。虽然这是真的,但任何 C++ 编译器也将编译 C - 通常编译器模式将根据文件扩展名自动选择,但每个编译器也可以选择强制 C 或 C++ 模式,而不管文件名如何。

          因此,请选择您最熟悉 gcc、VC++ Express、Digital Mars 等的免费 C++ 编译器。使用你最喜欢的 IDE 最好的 emacs、vim、VC++ Express、Code::Blocks、Bloodshed - 还是随便什么。

          这些工具中的任何一个都足以用于学习。就个人而言,既然你问的是 Windows,我会选择 VC++ Express - 它是一个很棒的 IDE,它是免费的,而且它可以很好地编译 C 程序。

          【讨论】:

          • 经验之谈:VC 是一个糟糕的 C 编译器。任何存在的现代事物在 VC 中都落后了。对于 C++,它很棒……对于 C,它太可怕了。
          【解决方案16】:

          你是说 Bloodshed 的 Dev-C++?这是一个不错的 C++ 可视化 IDE,它使用 MinGW 的 gcc for Windows 作为后台编译器。该项目已经被放弃了一段时间(在我看来,使用 Delphi 开发 C++ IDE 是一个非常愚蠢的事情来引起开发人员的注意),但是没有什么可以阻止你使用它并且将它使用的 MinGW 的 gcc 版本更新到最新版本 - 除了它是 GPL 许可的。

          【讨论】:

            【解决方案17】:

            你可以试试Code::Blocks,这是一个更好的IDE,并且带有MinGW GCC!我已经使用过它,它是 C/C++ 的免费软件 IDE。

            【讨论】:

            • @zeboidlund,winxp 后版本是什么?
            【解决方案18】:

            GCC 在技术上并不是一个特定于 linux 的编译器。它是一个符合标准的 c/c++ 编译器,我每天都将它用于 Windows 程序。最好在您对其他东西变得更舒服之前使用它。

            我建议您使用 GCC 的 MinGW 发行版。这将使用标准库等为 Windows 本地编译您的程序。

            如果您正在寻找 IDE,我有两个建议。 Visual Studio 是 Microsoft 版本,虽然它有问题,但它是一个用于处理代码的优秀 IDE。但是,如果您正在寻找更轻量级的东西,CodeBlocks 也相当不错,并且具有基本上能够使用您安装的任何编译器的额外好处(包括几种形式的 GCC 和 Visual 附带的 Microsoft 编译器) Studio)并能够从其他 IDE 打开项目文件。另外,它也可以在 linux 上运行,因此您可以自己更轻松地进行转换。

            我个人更喜欢 GCC,但这只是我。如果您真的想要 Microsoft 解决方案,VS 是您的最佳选择。

            【讨论】:

              【解决方案19】:

              我使用 BloodShed 的 DEV C++、CygWin 或 Visual C++ Express。所有这些都是免费的并且运行良好。我发现对我来说,DEV C++ 工作得最好,而且最不离奇。每个编译器都有自己的怪癖和差异,您需要尝试一些并找到最适合您的编译器。我还喜欢 DEV C++ 允许我更改编辑器中使用的字体这一事实。我喜欢 Proggy Programming 字体!

              【讨论】:

                【解决方案20】:

                还有另一个免费的 Windows C 编译器:Pelles C。

                Pelles C 是一个完整的 Windows 和 Windows Mobile 开发工具包。它包含一个优化 C 编译器、一个宏汇编器、一个链接器、一个资源编译器、一个消息编译器、一个 make 实用程序以及适用于 Windows 和 Windows Mobile 的安装构建器。 它还包含一个集成开发环境 (IDE),带有项目管理、调试器、源代码编辑器和资源编辑器,用于对话框、菜单、字符串表、加速器表、位图、图标、光标、动画光标、动画视频(AVI 无声音)、版本和 XP 清单。

                网址:http://www.smorgasbordet.com/pellesc/

                【讨论】:

                  【解决方案21】:

                  大多数大学都允许您访问Microsoft Dreamspark

                  如果您在课堂上使用 GCC/Linux,只需安装 Ubuntu。 Windows 是一个糟糕的 C 开发平台。

                  【讨论】:

                  • Windows 对于all 开发来说是一个糟糕的平台。为你解决了这个问题。
                  • 这是 Visual Basic 的最佳选择,你不能否认!
                  • @sweeneyrod:说句公道话,用VB为Wine开发应用程序还是不错的。
                  • 通过大学访问的东西的问题是,在课程结束后,您无法将努力获得的技能付诸实践。
                  • @richard1941:在大学里,将你在课堂上学到的技术应用到工业中并不是本意。
                  【解决方案22】:

                  我参加这个聚会迟到了,但是对于 Windows 上的任何未来 C 人员来说,Visual Studio 的目标是 C90 而不是 C99,这就是你在 *nix 上得到的。我目前在 Windows 上使用 Sublime Text 2 与 Cygwin 结合使用 C99。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2013-02-12
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多