【问题标题】:Cross Platform C++ Tool Chain跨平台 C++ 工具链
【发布时间】:2013-07-19 23:51:38
【问题描述】:

您好,我正在我的 windows Box 上整合一个工具链,用于跨平台 C++ 开发。我计划使用 Boost.Build 进行构建,使用 Boost::Test 进行单元测试。我将在我的 VCS 中使用 Mercurial,因为我可以将 repo 放在我的外部 HD 上,然后将它拉到我的 windows 或 linux 分区。阻碍我的主要事情是编辑器编译器/调试器。有人有什么建议吗?

借助 Boost.Build,我可以在技术上轻松地使用它支持的任何编译器进行构建。这意味着 Windows 上的 MSVC 和 linux 上的 GCC 通过使用带有标志的相同脚本。

【问题讨论】:

  • 您真的要在两个平台上运行 IDE 吗?我想这对于特定于平台的调试可能很有用,但在大多数情况下,我认为您只会在一个平台上进行开发(在您的情况下听起来像 Windows),然后为两者进行编译。
  • 老实说,如果我在很多情况下使用 IDE,我会不太在意,我发现它们会妨碍我。不过,使用相同的编辑器会很好。
  • 什么平台?如果只是你提到的 Linux 和 Windows,那么我建议你使用 VM 而不是双引导系统。然后,您可以只使用本机工具并从 Windows(或相反)运行本机 Linux 构建。它也使测试更快、更简单。例如,使用免费版本的 VMWare Server。

标签: c++ cross-platform


【解决方案1】:

Qt Creator 在 Windows 上使用 MinGW,在 Linux 上使用 GNU 编译器。这就是我使用的,它工作得很好。请注意,使用 Qt Creator 进行开发时,您不必使用 Qt。

【讨论】:

    【解决方案2】:

    我建议您在 Windows 和 Linux 上使用 CMake,因为您可以生成本机 Visual Studio 项目以及 Eclipse CDT 项目和普通的 makefile。

    如果您面向多个平台,但发现自己主要在单个平台上进行开发,我强烈建议您使用持续构建/集成系统,以确保一个平台的签入不会破坏其他平台的构建。

    【讨论】:

    • 是的,CMake 在这里是一个明确的选择。我其实只是看着它。这个持续构建系统正是我希望或多或少手动完成的。我希望能够从 repo 中提取并在其他操作系统上构建以确保它不会损坏。我的主要问题是我是否想使用 IDE 中的项目文件进行开发。如果我使用 vim 之类的东西进行开发并通过命令行使用 make 文件进行构建并以同样的方式进行调试,这似乎更容易。
    • 这里唯一真正的问题是您如何启动项目并将其放置在 vcs 等中......
    • +1 我建议使用 CruiseControl (cruisecontrol.sourceforge.net) 进行持续集成。我个人建议使用虚拟机或单独的盒子,而不是交叉开发。持续集成将使平台构建自动化,甚至可以运行测试并报告结果(通过电子邮件)。带有本机工具的 VM 与交叉开发一样便宜且不那么开放。
    【解决方案3】:

    Code::Blocks 是一个免费、开源、跨平台的 C++ IDE。它支持 MS 和 GCC 编译器等。

    【讨论】:

      【解决方案4】:

      阻碍我的主要是 编辑器编译器/调试器。任何人都有 有什么建议吗?

      是的:Qt Creator 作为 one 下载和安装将满足您的三个请求——选择“LGPL”许可路线和download and install the SDK,它甚至可以安装 gcc, g++, ...给你。集成调试器非常好,您可以从您的代码和您的工具获得跨平台行为。

      【讨论】:

      • QT Creator 是否也在 Windows 上安装 GCC 工具集?
      • 是的,如果你选择了 SDK -- 这就是为什么它是 280mb。但它是 easy 和 convenient 作为一个单一的下载 --- 并且一切正常。当然,你也可以在组件中做所有事情,但在 Windows 上设置和繁琐的工作更多,因为那里没有 apt-get :)
      【解决方案5】:

      您也可以在 Windows 上使用 gcc/g++。至于调试器:gdb 和 ddd 可能在 cygwin 中。编辑器:vim(注意:它实际上是一个可编程编辑器,而不是 IDE)。

      【讨论】:

      • 我通常只用它来快速编辑配置文件。
      • 答案取决于什么是“更高级的功能”。但是不,vim 的任何部分都没有困难,但是你会不断忘记你很少使用的东西,当然。
      【解决方案6】:

      Vim、gdb、gcc/g++、makefile - 你可以在 Windows 和 Unix 上使用它们 :)

      又为Code Blocks 或Qt Creator 投票。

      也有商业工具:除了 Visual Studio 之外,还有 MagicC++ (IDE)、TotalView、Allinea、Zero-bugs、UndoDB 等调试器...如果您想继续使用 VStudio,请查看这些VSBridge 和 WinGDB。

      无论如何,您始终可以在 Windows 上使用 MSVC,在 Unix 上使用其他工具(gdb/DDD 用于调试,vim/emacs 用于版本)——我已经以这种方式工作了很多年。所有平台的通用环境都很好,但有时很难(几乎不可能)在公司(尤其是大公司)中“强制”它;-)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-12
        • 2011-01-25
        • 2011-06-30
        • 1970-01-01
        • 2011-04-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多