【问题标题】:New to C++: should I use Visual Studio? [closed]C++ 新手:我应该使用 Visual Studio 吗? [关闭]
【发布时间】:2010-10-23 15:24:54
【问题描述】:

我即将开始我的第一个 C++ 项目。在过去 10 年左右的时间里,我做了很多 C# 和 VB(VB6 和 VB.NET),以及 Java 和其他一些事情,直到现在才需要 C++。

我计划使用 Visual Studio 2008,但我很想从有经验的 C++ 程序员那里了解 Visual Studio 是否适合 C++ 新手。

VS 会不会让我更难学习正确编程 C++?

VS 会鼓励任何坏习惯吗?

有什么我应该注意的陷阱吗?

【问题讨论】:

  • 这个问题在九年后被搁置了。有趣的。事实上,FWIW、Konrad 和 Neil 的回答都是基于专家的专业知识,并且当时都证明对我非常有帮助。

标签: c++ ide


【解决方案1】:

首先,VS 2008 非常强大,可能是 C++ 编程的最佳 IDE 之一(至少有一个支持插件,例如 Visual Assist X)。

但是请注意,C++ 是一种很难让编译器正确使用的语言,并且默认警告级别对引导非常宽松。所以它经常容忍坏/错误的代码。始终建议检查其他编译器上的代码 - 至少在 g++ 中,在严格模式下具有高警告级别。

还鼓励在 Visual Studio 中设置更高的警告级别。

【讨论】:

  • +1 用于设置更高的警告级别
  • 你知道,这对我的工作来说真的很痛苦,因为有些开发人员使用 VS,所以我必须修复他们所有的“错误”,使其再次在 UNIX 中工作
  • @igorgue:为什么那是你的任务?你不能拒绝他们的代码吗?在您的工作场所推动编码标准(包括警告级别的规则)?无论如何,我的哀悼。
【解决方案2】:

Visual Studio 是一款出色的 C++ IDE。如果您从 C# 中了解它,就会很熟悉。

【讨论】:

    【解决方案3】:

    对于开始学习像 C++ 这样的语言,完全不使用 IDE,而是从命令行构建,有一些话要说。这将使您对 c++ 编译和链接过程的各个阶段印象深刻,如果您需要真正的跨平台可移植性,它将为您提供良好的服务。

    【讨论】:

    • 谢谢尼尔。我想了想。我认为我是一个相当优秀的程序员,但我不是天才。无 IDE 的方法会不会是一种非常缓慢和痛苦的体验?
    • 是的,我认为对于习惯于像 VS 这样的生产环境的程序员来说,这将是非常缓慢、痛苦和彻底令人沮丧的。
    • 我不建议您对所有项目都使用命令行(我的项目使用 Code::Blocks),但最好了解 IDE 隐藏的底层机制你。当然,您应该知道如何从命令行使用您选择的工具集编译和链接一个简单的 2 文件应用程序。
    • 有道理。我会去做。谢谢。
    • 我同意尼尔的观点。出于同样的原因,学习如何编写 MSBuild 项目也是值得的。当 Visual Studio 出现问题时(有时确实如此),它会很有帮助,您需要修复它。
    【解决方案4】:

    VS 2008 非常适合开发 C++。就像其他人说的那样,我会购买 Visual Assist X 仅仅是因为它为您提供了更强的 Intellisense 和更好的代码大纲。此外,您使用 VS 获得的 MSDN 文档质量非常好,并且包含对 C++ 语言和标准库的完整描述。在 Windows 上,你会疯狂地使用其他任何东西。

    【讨论】:

    • 如果我必须在 Windows 上工作,即使是只需要在 Windows 上运行的代码,我也会使用可移植的东西,以防万一。未来很难预测……
    【解决方案5】:

    使用 Visual Studio,特别是如果您已经通过 C# 了解它。不过,我同意其他人的观点,即您应该投资于 Visual Assist。

    【讨论】:

      【解决方案6】:

      使用代码编辑器 + 构建工具会更好

      作为 IDE,VS 非常糟糕(主观)。有很多替代品(当然更轻量级)

      我所说的构建工具不仅是指编译器,还包括某种 make/jam 等

      这样,您将准备好进行真正的跨平台开发(首先),并且作为奖励,您将有可能为“不小的”项目构建更快、更舒适的构建——一个命令构建一切。虽然你可以在 VS 中得到相同的结果(真的吗?)它会更快。另外,您可以按照自己的方式拥有项目结构 8)

      作为参考,对于我的宠物项目,我使用 source insight + kjam + msvc 编译器

      【讨论】:

      • 所有这些都是为新的 C++ 程序员准备的?好像学 C++ 还不够难
      • 你知道.. 特别是对于一个新程序员。然而,我必须说,jmgant 谈到有编程经验,所以他可能已经学会了一些艰难的东西。我所说的“特别是对于新程序员”的意思是很容易养成坏习惯,将自己链接到 msvs 就是一个很好的例子。这就是为什么(至少在我住的地方)即使你以程序员的身份毕业,你也会学习分析课程。当你学习时——你应该走最难的路——以后会更容易;-)
      【解决方案7】:

      我记得几年前在使用 VS 时遇到了一些麻烦。实际上问题出在 C++ 编译器上,因为它们没有实现该语言的某些功能,或者至少它们没有以标准方式实现。

      我们改用 Eclipse CDT 是因为它相对容易使用其他编译器、支持自定义 makefile 和多个目标。

      但如果你打算为 Win32 开发,VS 可能是最安全的选择。

      【讨论】:

      • Visual C++ 过去对 C++ 标准的遵从性很差。这在 6.0 和 7.0 天肯定是正确的。然而,微软在 7.1 (Visual C++ .NET 2003) 中取得了巨大的进步。现代版本的 Visual C++ 对标准 C++ 有很好的支持。尽管如此,正如其他答案中提到的那样,使用至少两个编译器并提高警告级别是一个好主意。
      【解决方案8】:

      我正在做类似的事情;我做了很多 Java 编程,不久前开始学习 C++。当我开始学习一门新语言时,我喜欢通过编写更小的程序来解决各种语法差异。与 Visual Studio 对于大型项目一样棒,我认为它往往会为这种实践增加大量内容。我和 Konrad 一起讨论命令行的想法——这是一个很好的起点。我也将Dev-C++ 用于较小的项目。这是一个漂亮、紧凑的小型 gcc IDE,在硬盘驱动器上的总占用空间只有大约 60MB,它可以毫无问题地编译为 Windows 可执行文件。祝您工作顺利!

      【讨论】:

      • 感谢您的链接。没听说过那个。网站上也有一些不错的 C++ 链接。非常感谢!
      • DEv C++ 显然不再被开发(并且有很多错误) - 我建议使用 codeblocks.org 的 Code::Blocks。
      • 感谢更新。我也试试那个。
      【解决方案9】:

      是的,使用 Visual Studio,它是您已经知道的 IDE,因此它在工具方面的学习曲线最低。由于您以前从未使用过任何 C++,因此请使用 IDE,而不是控制台窗口来学习。您会错过的一件事是 .NET 框架。你可以在 VS 中使用托管 C++,但如果你打算使用纯 C++,根本没有托管代码,一开始会很吓人。

      关于 C++,我一直注意到的一件事是,如果您希望在开始使用 C++ 时使用与 C# 相同的所有工具,那么您可能会感到失望。 VS 是一个很棒的 IDE,早在 .NET 出现之前它就已经支持 C++,所以相信它,享受它,记住,没有什么是完美的。

      【讨论】:

        【解决方案10】:

        我问了一个类似的问题here,除了在 Visual Studio 上使用 C。虽然我个人无法想象在没有 VS 的情况下使用 C#,但我发现将 VS 用于 C 是一种自虐练习。我知道这与您所问的并不完全相同,但如果您发现它与 C++ 中的体验相似,请知道不只是您。

        【讨论】:

          【解决方案11】:

          使用 VS 让您不必深入了解构建工具链的工作原理。使用 VS 将您知道如何手动执行的操作自动化,并确保您了解幕后发生的事情。在 C++ 的世界中,与 C# 或 VB 等高级语言相比,您更需要了解构建链。

          【讨论】:

            【解决方案12】:

            如果您使用的是 VC 项目系统,应该没问题。但是,如果您使用的是基于 makefile 的项目,那么告诉 IDE 您的包含路径、预处理器宏等非常重要,这样智能感知才能正常工作。

            有些人对 Visual C++ 的代码浏览功能印象不好,因为他们习惯了不需要配置的 C#。

            需要注意的另一件事:有时,我发现智能感知在我工作了几天或几周的项目中无法正常工作。如果您的解决方案名为 foo.sln,删除 foo.ncb 文件将导致 IDE 重新解析您的代码,并且智能感知将重新开始工作。

            最后,我听说 VS 2010 多年来第一次对 C++ IDE 体验进行了重大改进。 http://blogs.msdn.com/somasegar/archive/2008/11/21/c-enhancements-in-vs-2010.aspx

            【讨论】:

            • 另外,根据您的源代码管理系统,您可能能够找到将其集成到 IDE 中的源代码管理插件。
            【解决方案13】:

            是的,使用 Visual Studio,但请注意,您使用它构建的应用程序不会在某些计算机上运行,​​除非它们安装了 Visual Studio 运行时 Redist。如果您发现您的应用无法在其他机器上运行,请转至download

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2018-09-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多