Visual Studio 2010 — Инструменты для мультиплатформенных проектов C ++

Я работаю с мультиплатформенным проектом на C ++ с использованием Visual Studio 2010, часть кода есть на всех платформах, но есть большая часть, посвященная каждой, я разделяю их с помощью #if def, но получается из-за того, что обслуживание кода становится очень сложным, и код загроможден, в дополнение к таким проблемам, как код не компилируется, некоторые определения включены или выключены.

Есть ли какой-нибудь плагин или инструмент для Visual Studio, который помогает в разработке многоплатформенных проектов, например, скрывает код, связанный с платформой, или компилирует, используя различные включенные / выключенные #defines, проверяет типы данных и т. Д.

Буду признателен, если у кого-нибудь будет предложение

1

Решение

Я не знаю о таком плагине для VS, но так как это в основном IDE только для Windows, я сомневаюсь, что они есть. (Но конечно я могу ошибаться)

Если вы ищете хорошую кроссплатформенную систему сборки, я бы CMake. Он мощный, его легко подобрать и он может генерировать файлы сборки практически для любой популярной IDE / цепочки инструментов (решения Visual Studio, проекты Eclipse, файлы сборки MinGW, файлы сборки GNU и т. Д.).

Это делает кроссплатформенную разработку крупных проектов на одном дыхании!

3

Другие решения

Вероятно, вы могли бы устранить большую часть кода, зависящего от платформы, если переключитесь на платформу Qt. Вы можете продолжать использовать VS с надстройкой Qt, а с помощью абстракций платформы Qt вы можете использовать несколько разных платформ с (почти) идентичной кодовой базой. Вы получаете непревзойденную поддержку и переносимость платформы:

  • Windows
  • Linux (Qt является родным для KDE и будущих выпусков Ubuntu)
  • MacOS
  • BB10 (Qt также является родным для BB10)
  • Встроенный Linux
  • Android (в следующем месяце)
  • iOS (тоже в следующем месяце)
  • Jolla
  • Tizen

API также лучше IMO — менее уродливый и неловкий, более последовательный. Кроме того, QML (разметка в стиле JSON для создания приложений из компонентов C ++ с использованием JS для связывания кода и привязок значений) может значительно повысить вашу производительность (до 10 раз без преувеличения). Набор инструментов Qt поддерживает различные наборы (комбинация компиляторов версий библиотек и платформ) и многоплатформенную кросс-компиляцию.

2

Нет «Инструмента» больше, чем сама визуальная студия. Разделяйте код по разным проектам; Проект для общего кода и проект для каждой платформы.

Не забудьте:

 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.

введите описание изображения здесь

1
По вопросам рекламы [email protected]