У меня есть проект Visual Studio-2010, который содержит множество исходных файлов и файлов заголовков. Теперь мне нужно автоматически собрать этот проект под последней версией Debian GNU / Linux. Поэтому я решил использовать MinGW. Но мне нужен make-файл этого проекта визуальной студии. Есть ли простой способ перевести проект vs в make-файл? Или MinGW может напрямую создать проект Visual Studio с дополнительными пакетами или библиотеками? Любые идеи будут оценены по достоинству.
Может ли mingw создать проект Visual Studio-2010?
Ответы (2)
Если вы хотите постоянно переносить сборку вашей программы на GNU / Linux, я бы рекомендовал переключиться на автоинструменты (autoconf и automake). Автоинструменты очень широко распространены и имеют отличную поддержку кросс-компиляции. (с другой стороны, это тоже несколько заработанная репутация странности.) Хотя мне известно о автоматическом переводе из VS-проектов, компиляция одной программы может быть такой же простой, как и поиск всех исходных файлов и файлов заголовков. , соответствующим образом перечислив их в Makefile.am и написав правило для объектов Windows.
Если переход на MinGW не высечен на камне или вероятен сценарий продолжения сборки с двумя компиляторами, используйте cmake, как предлагали комментаторы. Хотя я всегда считал, что CMake является серьезной проблемой для сборок без сопровождения (что характерно для программного обеспечения с открытым исходным кодом), он имеет хорошую репутацию для создания всех видов файлов описания сборки, таких как Makefiles и проекты VS.
Так или иначе, вам придется конвертировать свой проект вручную. Это может быть довольно просто для нормальной структуры проекта, но это необходимо сделать.
Я не знаю ни одной цепочки инструментов, которая могла бы сделать это из коробки. CMake (и все другие генераторы мета-файлов makefile) предлагают только одностороннее преобразование: они могут сгенерировать проект / решение Visual Studio один раз, но нет возможности автоматически синхронизировать с изменениями, внесенными в конфигурации VS / MSBuild. Написание и поддержка конфигураций CMake (или PreMake или чего-то еще) - это боль, и это имеет смысл только в том случае, если ваша основная платформа разработки находится где-то за пределами платформы Microsoft.
Однако есть интересная альтернатива: xbuild - порт MSBuild, который является системой сборки, лежащей в основе интеллект VS. Теоретически можно расширить систему для поддержки конфигураций MSBuild, сгенерированных Visual Studio, и определения правил преобразования для правильных цепочек инструментов C ++ на других платформах (даже двусторонним). Декларативный характер MSBuild / XBuild, основанный на XML, является огромным преимуществом по сравнению с autotools / make, которые стоили мне слишком много времени и неудобств в жизни моего разработчика. MSBuild / XBuild реализованы как полностью управляемая среда с хорошо спроектированной архитектурой, поэтому расширения довольно легко реализовать. Конечно, это окупается, только если вы (или ваша компания) серьезно думаете о крупномасштабной кроссплатформенной поддержке.