Как настроить визуальную студию для кросс-платформенной разработки на С++
По прошествии некоторого времени в основном .net-разработка, мне нужно работать на С++ в кросс-платформенной манере.
Я не хочу бросать визуальную студию, поэтому я надеялся, что можно использовать визуальную студию и целевые окна в качестве тестовой сборки, а затем каждый раз с помощью vm-теста код на linux или mac.
Есть ли у кого-нибудь опыт в том, как наилучшим образом настроить это?
Мне особенно любопытно, как вы убедитесь, что такие вещи, как файл проекта, синхронизируются с файлами make, которые, вероятно, необходимы на платформах * nix.
Ответы
Ответ 1
Прежде всего, выберите не управляемый проект на С++ (чтобы избежать использования .net файлов).
После этого поднимите уровень предупреждения (/W3
должен сделать) и будьте очень осторожны, что вы делаете/пишете. IMHO, GCC лучше держать вас прямо со стандартом (-Wall -Wextra -pedantic -std=c++11
), но вы указываете MSVC.
Как сказал Ной, вам понадобится построить систему, которая сама по себе является кросс-платформенной, такой как CMake (есть другие, пожалуйста, не забывайте об этом).
Не забудьте использовать независимые типы платформы/архитектуры/компилятора, такие как std::size_t
, std::(u)intptr_t
и т.д. вместо простых int
, long
, unsigned
: это рецепт катастрофы, а броски Windows API это слишком много.
Смотрите здесь, но только/особенно точки 1, 2, 5 и 8 (и 9, но обобщайте это на svn, git, mercurial).
Ответ 2
Мне особенно любопытно, как вы убедитесь, что такие вещи, как файл проекта, синхронизируются с файлами make, которые, вероятно, необходимы на платформах * nix.
Так как MS решила удалить поддержку make файлов из VS, вы этого не сделаете. Вы используете что-то другое, которое может генерировать файлы проекта VS и следить за тем, чтобы вы правильно настроили его. Что-то вроде CMake.
Ответ 3
(3 года спустя...)
Если у вас НЕ-ЭКСПРЕСС, что позволяет использовать плагины, тогда есть такие вещи, как WinGDB и VisualGDB, чтобы помочь вам.
Duckduckgo также рассказывает мне о make-it-so, который довольно устарел - но пока может быть еще много таких, поскольку они должен быть проще сделать с новыми форматами проектов на основе xml.
Ответ 4
Это древний вопрос от 6 лет назад, но я хотел бы отметить, что Microsoft теперь имеет официальные инструменты для работы с linux С++ в Visual Studio:
https://blogs.msdn.microsoft.com/vcblog/2016/03/30/visual-c-for-linux-development/
Кроме того, Windows 10 теперь имеет возможности запускать Linux внутри Windows, поэтому это должно сделать вашу жизнь намного проще для любого, кто все еще заинтересован в разработке на С++ для Linux в Visual Studio.