我正在使用 Visual Studio 2010 处理一个 c++ 多平台项目,所有平台之间有一个共享的代码部分,但有很大一部分是专用于每个平台的,我使用 #if def 将它们分开,但它变成了代码维护变得非常但代码混乱,此外还有一些问题,例如代码无法编译,某些定义打开或关闭。
是否有任何用于 Visual Studio 的插件或工具有助于开发多平台项目,例如隐藏与平台相关的代码,或使用打开/关闭的不同#defines 进行编译,检查数据类型等。
如果有人有建议,我将不胜感激
我正在使用 Visual Studio 2010 处理一个 c++ 多平台项目,所有平台之间有一个共享的代码部分,但有很大一部分是专用于每个平台的,我使用 #if def 将它们分开,但它变成了代码维护变得非常但代码混乱,此外还有一些问题,例如代码无法编译,某些定义打开或关闭。
是否有任何用于 Visual Studio 的插件或工具有助于开发多平台项目,例如隐藏与平台相关的代码,或使用打开/关闭的不同#defines 进行编译,检查数据类型等。
如果有人有建议,我将不胜感激
我不知道这样的 VS 插件,但由于它基本上是一个仅限 Windows 的 IDE,我怀疑是否有。(但当然我可能是错的)
如果您正在寻找一个好的跨平台构建系统,我会寻找CMake。它功能强大、易于上手,并且可以为几乎任何流行的 IDE/工具链(Visual Studio Solutions、Eclipse Projects、MinGW Makefiles、GNU Makefiles 等)生成构建文件。
它使大型项目的跨平台开发变得轻而易举!
如果您切换到 Qt 框架,您可能会消除大部分依赖于平台的代码。您可以继续使用带有 Qt 插件的 VS,并且通过使用 Qt 的平台抽象,您可以使用(几乎)相同的代码库来定位许多不同的平台。您将获得无与伦比的平台支持和可移植性:
API 也更好 IMO - 不那么丑陋和尴尬,更一致。此外,QML(JSON 样式标记,用于从 C++ 组件构建应用程序,使用 JS 进行胶水代码和值绑定)可以显着提高您的生产力(高达 10 倍而不夸张)。Qt 工具链支持不同的工具包(库版本编译器和平台的组合)和多平台交叉编译。
没有比 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.