1

我正在使用 Visual Studio 2010 处理一个 c++ 多平台项目,所有平台之间有一个共享的代码部分,但有很大一部分是专用于每个平台的,我使用 #if def 将它们分开,但它变成了代码维护变得非常但代码混乱,此外还有一些问题,例如代码无法编译,某些定义打开或关闭。

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

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

4

3 回答 3

3

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

如果您正在寻找一个好的跨平台构建系统,我会寻找CMake。它功能强大、易于上手,并且可以为几乎任何流行的 IDE/工具链(Visual Studio Solutions、Eclipse Projects、MinGW Makefiles、GNU Makefiles 等)生成构建文件。

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

于 2013-03-19T10:05:41.347 回答
2

如果您切换到 Qt 框架,您可能会消除大部分依赖于平台的代码。您可以继续使用带有 Qt 插件的 VS,并且通过使用 Qt 的平台抽象,您可以使用(几乎)相同的代码库来定位许多不同的平台。您将获得无与伦比的平台支持和可移植性:

  • 视窗
  • Linux(Qt 原生于 KDE 和 Ubuntu 的未来版本)
  • 苹果系统
  • BB10(Qt 也是 BB10 原生的)
  • 嵌入式 Linux
  • Android(下个月推出)
  • iOS(下个月也是)
  • 霍亚
  • 蒂岑

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

于 2013-03-19T10:40:38.117 回答
1

没有比 Visual Studio 本身更多的“工具”了。将代码分离到不同的项目中;通用代码的项目和每个平台的项目。

不要忘记:

 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.

在此处输入图像描述

于 2013-03-19T10:03:26.793 回答