用于c ++多平台项目的工具

时间:2013-03-19 10:01:13

标签: c++ visual-studio-2010 debugging embedded multiplatform

我正在使用Visual Studio 2010处理c ++多平台项目,所有平台之间都有共享的代码部分,但是每个平台都有很大一部分,我使用#if def将它们分开,但事实证明,代码维护变得非常糟糕,而且代码混乱,除了代码无法编译而某些定义打开或关闭的问题。

是否有任何用于Visual Studio的插件或工具可以帮助开发多平台项目,例如隐藏与平台相关的代码,或者使用不同的#defines开启/关闭编译,检查数据类型,等等。

如果有人提出建议,我将不胜感激

3 个答案:

答案 0 :(得分:3)

我不知道VS的这个插件,但由于它基本上只是一个Windows的IDE,我怀疑有没有。 (但当然我可能错了)

如果您正在寻找一个良好的跨平台构建系统,我会期待CMake。它功能强大,易于上传,可以为几乎任何流行的IDE /工具链(Visual Studio解决方案,Eclipse项目,MinGW Makefile,GNU Makefile等)生成构建文件。

它使大型项目的跨平台开发变得轻而易举!

答案 1 :(得分:2)

如果切换到Qt框架,您可能可以消除大多数与平台相关的代码。您可以继续使用VS和Qt附加组件,并使用Qt的平台抽象,您可以使用(几乎)相同的代码库来定位许多不同的平台。您将获得无与伦比的平台支持和可移植性:

  • Linux(Qt原生于KDE和未来的Ubuntu版本)
  • 的MacOS
  • BB10(Qt原生于BB10)
  • 嵌入式Linux
  • Android(即将于下个月发布)
  • iOS(下个月也是)
  • 拉霍亚
  • Tizen

API也更好IMO - 不那么丑陋和笨拙,更一致。此外,QML(用于从C ++组件构建应用程序的JSON样式标记,使用JS进行粘合代码和值绑定)可以显着提高您的工作效率(最多10倍而不会夸大)。 Qt工具链支持不同的工具包(库版本编译器和平台的组合)和多平台交叉编译。

答案 2 :(得分:1)

没有“工具”比视觉工作室本身更多。将代码分离到不同的项目;每个平台的通用代码和项目项目。

不要忘记:

 1. Add reference to common project in all platform-dependent projects (so common project is compiled before platform project). 
 2. Add common project base to the common include directories of each target project.

enter image description here