Через некоторое время, в основном для разработки .net, мне нужно работать на с ++ в кроссплатформенной манере.
Я не хочу отказываться от visual studio, поэтому я надеялся, что можно использовать visual studio и цель windows в качестве тестового билда, а затем время от времени с помощью vm-теста тестировать код. на Linux или Mac.
У кого-нибудь есть опыт, как лучше всего это настроить?
I» Мне особенно любопытно, как убедиться, что такие вещи, как файл проекта, синхронизируются с файлами make, которые, вероятно, необходимы на платформах * nix.
Прежде всего, выберите неуправляемый проект C ++ (чтобы избежать файлов .net).
После этого увеличьте уровень предупреждения ( / W3
должен делать), и будьте очень осторожны с тем, что вы делаете / пишете. IMHO, GCC лучше держит вас прямо со стандартом ( -Wall -Wextra -pedantic -std = c ++ 11
), но вы указываете MSVC.
Как сказал Ной, вам понадобится система сборки, которая сама по себе является кроссплатформенной, например CMake (есть и другие, пожалуйста, не забывайте об этом).
Не забудьте использовать независимые от платформы / архитектуры / компилятора типы, например std :: size_t
, std: :( u) intptr_t
и т. Д. Вместо простого int
], long
, беззнаковый
: это рецепт катастрофы, и Windows API слишком часто их бросает.
См. здесь , но только / особенно пункты 1, 2, 5 и 8 (и 9, но обобщите это на svn, git, mercurial).
Мне особенно любопытно, как вы обеспечиваете синхронизацию таких вещей, как файл проекта, с файлами make, которые, вероятно, необходимы на платформах * nix.
Поскольку MS решила удалить из VS поддержку make-файлов, вы этого не сделаете. Вы используете что-то еще, что может генерировать файлы проекта VS, и убедитесь, что вы правильно настроили ЭТО. Что-то вроде CMake.