может ли mingw построить проект visual studio-2010? - PullRequest
6 голосов
/ 10 ноября 2011

У меня есть проект visual studio-2010, который содержит множество исходных файлов и заголовочных файлов. Теперь мне нужно автоматически собрать этот проект под последнюю версию Debian GNU / Linux. Поэтому я решил использовать MinGW. Но мне нужен make-файл этого визуального студийного проекта. Есть ли простой способ перевести проект против проекта в make-файл? Или MinGW может напрямую создать проект Visual Studio с дополнительными пакетами или библиотеками? Любые идеи будут оценены.

Ответы [ 2 ]

1 голос
/ 12 ноября 2011

Я не знаю ни одной цепочки инструментов, способной сделать это из коробки.CMake (и все другие генераторы метафайла) предлагают только одностороннее преобразование: они могут сгенерировать проект / решение Visual Studio один раз, но невозможно автоматически синхронизировать изменения, внесенные в конфигурации VS / MSBuild.Написание и поддержание конфигураций CMake (или PreMake или чего-либо еще) является трудной задачей, и это имеет смысл, только если ваша основная платформа разработки находится где-то за пределами платформы Microsoft.

Хотя есть интересная альтернатива: xbuild - порт MSBuild, который является системой сборки за интеллектом VS.Теоретически, можно расширить систему для поддержки конфигураций MSBuild, сгенерированных Visual Studio, и определить правила преобразования для надлежащих цепочек инструментов C ++ на других платформах (даже двусторонним способом).Декларативная, основанная на XML природа MSBuild / XBuild - это огромная победа по сравнению с autotools / make, которая стоила мне слишком много времени и неудобств в жизни моего разработчика.MSBuild / XBuild оба реализованы как чисто управляемая структура с хорошо разработанной архитектурой, так что расширения довольно легко реализовать.Конечно, это окупается только в том случае, если вы (или ваша компания) всерьез думаете о крупномасштабной кроссплатформенной поддержке.

1 голос
/ 12 ноября 2011

Если вы хотите постоянно переносить сборку вашей программы на GNU / Linux, я бы рекомендовал переключиться на autotools (autoconf и automake).Автоинструменты очень распространены и имеют отличную поддержку кросс-компиляции.(с другой стороны, это также несколько заслуженная репутация за странность.) Хотя я не знаю об автоматическом переводе из проектов VS, компиляция одной программы может быть настолько же простой, как и поиск всех исходных файлов и заголовочных файлов., перечислив их в Makefile.am соответствующим образом и написав правило для объектов Windows.

Если переход к MinGW не написан в камне или вероятен продолжающийся сценарий сборки с двумя компиляторами, используйте cmake, как предложили комментаторы.Хотя я всегда считал, что CMake представляет собой серьезную проблему для сборок, не связанных с сопровождающим (обычно для программного обеспечения с открытым исходным кодом), он имеет хорошую репутацию для генерации всех видов файлов описания сборки, таких как Makefiles и VS проекты.

Так или иначе, вам придется конвертировать свой проект вручную.Это может быть довольно легко для нормальной структуры проекта, но это должно быть сделано.

...