【问题标题】:Is is possible to develop for windows, in C++, without Visual Studio? [closed]是否可以在没有 Visual Studio 的情况下使用 C++ 为 Windows 进行开发? [关闭]
【发布时间】:2010-10-07 19:28:25
【问题描述】:

我渴望从事实时 3D 图形方面的工作。我几乎完全在 C++ 中工作,对 win32 有一点了解。实际上,我有任何明智的选择吗?

【问题讨论】:

  • 仇恨很少是经过仔细研究的立场。尤其是当您在通常是一个不错的问题的前面加上咆哮(根据行数,71% 的问题)。
  • 公平地说,IDE 慢得离谱,并且对您的工作方式和项目的结构做出了一些非常强烈的假设,这有时让我发疯。但是,是的,它在许多方面也是一个出色的 IDE。请举例说明一下? :)
  • 你不是第一个对此有点挂断的人(尽管大多数人用不到“数百小时”的“仔细研究”来解决这个问题;)但将其作为单独的问题,因此其他人也可以找到它并从中受益。
  • 不幸的是,VS C++ 项目模板并不简单。他们往往会用大量没人使用过的默认代码将您的文件弄得一团糟,这会给刚选择默认选项的初学者带来预编译的头文件和其他非标准的复杂性。
  • VS 远非完美。加载速度很慢,更新智能数据库的速度可能很慢,尤其是对于 c/c++,它偶尔会崩溃,在你输入一些代码的过程中它可能会丢失,只是为了它回来几秒钟后。可能会好很多。

标签: c++ windows visual-studio winapi


【解决方案1】:

您可以在没有 IDE 的情况下使用 MSVC 编译器。这可能是你最好的选择。它是一个很好的编译器,它是 Windows 开发的事实标准。

放弃 IDE 并简单地使用编译器肯定没有错。

我相信可以从 Code::Blocks IDE 中毫无问题地使用 MSVC 编译器。 或者,从命令行调用编译器也是一种行之有效的方法。

【讨论】:

  • 如果您正在开发 MONO,您是否也可以使用 MSBuild 或 XBuild 以及 Windows SDK 来实现相同的目标,甚至无需下载和安装 Visual Studio?
  • 视情况而定。在最近的版本中,MSVC++ 编译器作为 Visual Studio 的一部分提供。另一方面,.NET 编译器是单独提供的(我不记得它们是 Windows SDK 的一部分,还是单独的包)。 MSBuild 与该编译器一起工作正常。如果您想使用第三方编译器(例如作为 Mono 的一部分),您可以仍然使用 MSBuild,但您必须编写必要的配置和扩展,以便它正确调用“外国”编译器
  • 信息不再准确。从 Visual Studio 2017 开始,Build Tools for Visual Studio 现在可以单独下载。 Introducing the Visual Studio Build Tools 有更多信息。
【解决方案2】:

Eclipse:http://www.eclipse.org/

Code::Blocks 很酷:http://www.codeblocks.org/

【讨论】:

【解决方案3】:

取决于...

Cygwin/Mingwin 给你一个编译器。 Qt 或 wxWidgets 为您提供了一个易于使用且可移植的 GUI 工具包。

我同意这个问题。 Visual Studio 是一头猪。它的调试器非常好,但剩下的就是一头猪(特别是来自 OSS 背景,工具通常不会试图锁定你)。

您还可以查看 nmake 并直接从命令行调用 VC++ 编译器工具。

【讨论】:

  • 我不明白你的意思:“试着把你锁在里面”。我觉得我可以让 VS 为所欲为,对我来说 VS 似乎非常灵活和可塑。
  • VS 很棒,只要“我想要的”符合“微软想要的”。它可以定制,但你会被它的界面、项目文件格式、编译器等困住,如果 VS 不可用,构建你的软件需要做很多工作。使用标准编译器工具的基于 Makefile 的项目更有意义,特别是如果您打算将您的程序从 Windows 中移除。
【解决方案4】:

我们使用 VC++ 作为编译器/链接器,但使用Jam 来驱动构建。实际的 Visual Studio 仅用作调试器。好处是,一旦我们设置 Jam 以在 Windows 中构建项目,只需极少的努力(通常none)即可使其在 Unix 上运行。

【讨论】:

    【解决方案5】:

    Zeus IDE 可以作为 MSVC 的替代品使用。它甚至可以导入 MSVC 项目和解决方案文件。

    【讨论】:

      【解决方案6】:

      聚会有点晚了,但我想补充一点,2018 年终于开始出现一个可行的替代方案,足以承诺从 VS 对 Windows C++ 开发的垄断中解放出来:

      不幸的是,标准库头文件仍然需要 Microsoft Build Tools,但与整个 VS 庞然大物相比,下载大小微不足道。好处是 Clang-cl 会自动选择它们,并且 Build Tools 并没有强制要求您让它们的可执行文件在线登录激活您的免费许可证

      将这一切设置为工作配置比将 VS 项目/解决方案拼凑起来要复杂一些,但这是完全值得的。作为奖励,手动设置可能会让您更好地了解 IDE 的底层原理。

      要错过的一件事可能是出色的 VS 调试器...好吧,如果您准备好改掉习惯,开源 x64dbg 可能会来救援,通过 .pdb 查看和单步执行源代码的能力包括文件(是的,Clang can generate them now!)。

      更新:截至 2019 年,EasyClangComplete 的一个更好且面向未来的替代方案是通过 LSP 插件使用 Clangd

      【讨论】:

      【解决方案7】:

      当然可以,但是使用 Microsoft 的 IDE 为 Microsoft 操作系统进行开发要容易得多。在罗马时...

      Eclipse 是一个不错的选择。

      【讨论】:

        【解决方案8】:

        Code::Blocks IDE 带有 MinGW C++ 编译器并支持 wxWidgits。 IDE 非常简约,可能是也可能不是您正在寻找的东西 - 我真的很喜欢它。

        【讨论】:

          【解决方案9】:

          Dev-C++我发现非常有用,而且免费:)

          【讨论】:

          • 它有问题,多年未维护,即使维护,与竞争对手相比也不值得使用。
          • 我希望它能够得到维护,我当年在这个 IDE 上大吃一惊。
          【解决方案10】:

          很有可能,Qt 是你的朋友。 Qt Creator 也处于 RC 阶段,所以值得期待。在此之前,您可以将它与Code::Blocks. Code::Blocks 之类的东西一起使用,它本身就是一个很棒的环境,并且对 wxWidgets 也有很多支持。如果您只是在寻找 IDE 更改,如前所述,Code::Blocks 也可以使用其他 IDE 的编译器。

          -约翰

          【讨论】:

            【解决方案11】:

            SlickEdit(或许多其他支持 ctags 或类似功能的编辑器)构成了一个相当不错的“IDE”。

            您可以将这些编辑器与 makefile(或其他构建工具)一起使用来驱动几乎任何您想要的编译器(MVCS、mingw、Comeau、Digital Mars 等等)。

            几个雇主之前,这正是我们所做的。我们使用由 makefile 驱动的 MS 编译器,使用的主要编辑器是 SlickEdit。我们使用 Debugging Tools for Windows 软件包进行调试(我们所做的很多都是内核模式)。效果很好。

            【讨论】:

              【解决方案12】:

              Wascana Desktop Developer 是专为在 Windows 上开发而配置的 Eclipse CDT 发行版。

              【讨论】:

                【解决方案13】:

                我建议给Notepad++MSBuildWindows SDK 看看。你也可以使用XBuild,但这更适合单声道。请注意,MSBuild 和 XBuild 只是自动化工具,因此您将在 Windows SDK 上花费更多时间。

                【讨论】:

                  【解决方案14】:

                  我肯定会为此受到很多批评,但我发现 C++Builder 是一个比 MSVC 更容易开发 Windows C++ 应用程序的 IDE/编译器。它可能不是最便宜的解决方案,或者具有所有相同的花里胡哨,或者是最符合语言的(它的 32 位编译器还不支持 C++11,但它的 64 位编译器支持),但你真的不能击败其视觉 UI 设计师和 3rd 方组件市场。

                  【讨论】:

                    猜你喜欢
                    • 2010-09-05
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2010-10-26
                    • 1970-01-01
                    • 2012-01-17
                    相关资源
                    最近更新 更多