【问题标题】:Build management in C++ & good IDEs on LinuxC++ 中的构建管理和 Linux 上的优秀 IDE
【发布时间】:2009-11-15 20:54:00
【问题描述】:

我开始用 C++ 编写一个中等规模的项目,需要相当多的文件和对其他项目的依赖。

你认为手动维护这个项目的 Makefile 是最好的方法吗?

还有其他更好的 C++ 替代方案可以使文件的构建管理和依赖管理变得非常容易处理吗?

另外,什么 IDE 适合在 Linux 上进行 C++ 开发?我对 Vim 很满意,但你认为有没有提供代码补全等的 C++ IDE(如 Java 的 Eclipse)?

谢谢! 阿杰

【问题讨论】:

  • Vim 提供代码补全:)
  • @static_rtti:不,它没有,不是真的,不可靠,不够复杂。

标签: c++ ide build-process


【解决方案1】:

其他人已经推荐使用 CMake。在我看来,您应该使用 CMake 管理您的项目,然后决定您最喜欢的 IDE。

CMake 允许您描述要构建的项目,而不是如何构建它。例如:我想创建一个名为 foo 的共享库,其中包含源文件 a.cpp、b.cpp 和 c.h,它需要这些链接依赖项。然后在 unix 上得到 libfoo.so,在 windows 上得到 foo.dll 和 foo.lib。所有常见的项目设置都可以在构建树中抽象到更高级别,这使大多数文件非常简单。更复杂的需求可以重构为宏。

一旦您的项目被这样描述,CMake 将生成 makefile 和/或 IDE 项目。这意味着每个开发人员都可以选择自己的 IDE,并允许您在适当的情况下强制使用 IDE。

我的公司使用 CMake 在 windows 和 solaris 上的产品中构建 c++。它包含 600 个项目和 150 万行源代码。在移植到 solaris 时,我们最初选择它作为跨平台构建实用程序,但是对于像我们这样的大型项目,使用 CMake 管理构建比使用 Visual Studio 项目文件要容易得多。我会推荐它作为任何规模的任何 c++ 项目的构建实用程序

我们在 solaris 上使用 eclipse cdt 并且对它非常满意。我们的大部分开发都是在 Windows 上使用 Visual Studio。 cmake 也适用于其他 ide,我在家里的 linux 上将它与 KDeveloper4 一起使用,没有任何问题。

【讨论】:

  • 更不用说 KDevelop 4 旨在与 CMake 完全集成,提供出色的功能。
【解决方案2】:

KDevelop4(来自他们网站的 subversion 或 rc1)+ CMake 让生活变得如此轻松,automake 应该会死。 如果你想要一个跨平台的解决方案,netbeans + c++ 插件相当不错,但不如 kdevelop4。

【讨论】:

    【解决方案3】:

    在整个构建过程中我非常喜欢 CMake(但我几乎没有使用 scons 或 Jam 的经验)。

    我使用 vim 或 qtcreator。 Qtcreator 仍处于开发阶段,但我认为很有前途。

    【讨论】:

      【解决方案4】:

      我建议你使用 Code::Blocks。我在 Debian 上使用它并且运行良好。

      http://www.codeblocks.org/

      编辑:添加了另一个链接 http://wiki.codeblocks.org/index.php?title=The_build_process_of_Code::Blocks

      【讨论】:

      • 代码块看起来不错!它也管理依赖项吗?还是我仍然必须使用 CMake?
      • 是的,当然,你可以这样设置依赖:右键项目,选择属性->构建目标,点击“依赖。也检查wiki.codeblocks.org:)
      【解决方案5】:

      Eclipse 也可以使用 C++ - 通过 eclipse CDT - 不如 Java 全面但相当好。

      【讨论】:

        【解决方案6】:

        在较大的项目中手动维护 Makefile 变得非常痛苦。如果您开始使用 automake/autoconf,您将在学习所有方面一段时间后,体会到这些工具可以提供的强大功能。

        作为 IDE,只需使用 Emacs。它快速、强大并支持代码完成等。

        【讨论】:

          【解决方案7】:

          还有 Code::Blocks 作为具有自己构建系统的 IDE。但是,如果您希望能够在“任何地方”构建您的软件而无需安装花哨的 schmancy IDE,我会鼓励您尝试其他构建工具(CMake、Boost.Build、SCons)。 ;-)

          【讨论】:

            【解决方案8】:

            我发现 Emacs + Scons 非常适合我。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-12-21
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-06-10
              • 2012-10-17
              • 2010-12-30
              相关资源
              最近更新 更多