Может ли mingw создать проект Visual Studio-2010?

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


person machinarium    schedule 10.11.2011    source источник
comment
Этот проект действительно был перенесен на Linux? Или вы просто скрещиваете пальцы и надеетесь, что все получится? Потому что, даже если система сборки просто работала (tm), это не гарантирует, что код действительно скомпилируется и / или правильно скомпилируется.   -  person Chris Eberle    schedule 10.11.2011
comment
Нет, этот проект еще не перенесен на Linux? И я не буду этого делать. Я хочу разрабатывать под windows и автосборку под linux.   -  person machinarium    schedule 10.11.2011
comment
Хех, извини, это несбыточная мечта. Если вы не используете полностью кроссплатформенные библиотеки (boost, qt и т. Д.), Не выполняете никаких системных вызовов (это, вероятно, происходит, а вы даже не понимаете этого) и кроссплатформенную систему сборки (например, cmake), это просто никогда не произойдет. Сделать проекты C / C ++ кроссплатформенными - обычно довольно утомительно. Также я не уверен, что в этом контексте означает автосборка. Скомпилированная ферма? автопроизводитель?   -  person Chris Eberle    schedule 10.11.2011
comment
Хм, Autobuild означает, что сборку можно выполнить с помощью скрипта (например, makefile).   -  person machinarium    schedule 10.11.2011
comment
Это не автосборка. Это сделать. И есть много разных его вкусов. Вам действительно стоит взглянуть на cmake, он может генерировать как make-файлы Linux, так и проекты Visual Studio. Однако, как я надеюсь, я подчеркнул, это не гарантия того, что код действительно скомпилируется на другой архитектуре.   -  person Chris Eberle    schedule 10.11.2011
comment
OK. Я ПРОВЕРЮ cmake. Может ли он выполнять перевод между ними (файл makefile и файлы свойств проекта vs)?   -  person machinarium    schedule 10.11.2011
comment
ОК, это приятно слышать. И нет, это не может быть переведено между ними. Вы создаете файлы CMakeLists, а затем он переводит их во что-то более узнаваемое по сравнению с текущим Платформа.   -  person Chris Eberle    schedule 10.11.2011
comment
Итак, мне нужно вручную написать файл CMakeLists.txt в соответствии с файлами проекта. Инструменты Hope могут делать это автоматически.   -  person machinarium    schedule 11.11.2011


Ответы (2)


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

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

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

person thiton    schedule 12.11.2011

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

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

person Paul Michalik    schedule 12.11.2011