Подтвердить что ты не робот

Разработка приложений Windows в Linux?

Моя основная ОС - Linux, но теперь я вынужден написать некоторые С++-приложения для Windows. Я думал о разработке на ящике Linux с кросс-платформенными библиотеками, такими как WxWidgets (и некоторые заботы о других зависимостях на платформе), а затем перекрестно компилирует результат в целевую мишень.

Итак, инструменты, которые я собираюсь использовать,

  • g++ для компиляции и кросс-компиляции.
  • CMake
  • WxWidgets
  • ??? для создания пакетов установки Windows.
  • вино для тестирования версии Windows

И мои вопросы:

  • Каковы некоторые бесплатные (или даже лучше с открытым исходным кодом) установщики для Windows, которые я мог бы использовать для создания окончательного пакета? Это поможет, если пакет может быть подготовлен из Linux.

  • Будет ли Wine проверить версию с перекрестной компиляцией (после того, как вся логика протестирована в версии Linux)?

  • Это хорошая идея?: -)

4b9b3361

Ответ 1

Также проверьте Qt. Это очень богатая межплатформенная платформа.

Что касается инсталляторов, я настоятельно рекомендую WiX.

Для тестирования будет гораздо лучше использовать какую-то виртуализацию, такую ​​как Sun Microsystems VirtualBox. Я считаю, что вы можете использовать пробную версию Windows или Windows 7 RC, которую можно использовать до марта 2010 года.

Ответ 2

Прежде всего, да, это хорошая идея. У меня есть несколько проектов, которые я поддерживаю версией Windows таким образом.

В любом случае, я предлагаю вам протестировать конечный продукт на компьютере Windows. Если у вас есть лицензия для ОС Windows, вы можете использовать виртуализацию для выполнения окончательных тестов.

Я предлагаю использовать Autotools, который имеет очень хорошую поддержку кросс-компиляции и работает "изначально" с помощью кросс-компилятора.

В Debian, например,

./configure --host=i586-mingw32msvc

Это создало бы правильный make файл для перекрестной компиляции, как если бы это был проект Unix.

В любом случае я бы рекомендовал разработать кросс-платформенную версию и время от времени родную версию Windows с Wine/Windows путем их компиляции.

Ответ 3

    • InstallJammer позволяет создавать инсталляторы для * nix и Windows. Я не уверен, разрешает ли это перекрестное создание инсталляторов (т.е. Создание установщиков Windows из * nix). Коммерческий вариант с демонстрационной версией, доступной для тестирования, - Bitrock InstallBuilder.
    • Возможно... Если у вас есть лицензия Windows, предложение Дава было бы лучше.
    • Если это помогает вам работать лучше/эффективнее и эффективнее, уверен.

Держите нас в курсе, как вы справляетесь - это интересно.

Ответ 4

2) Нет, Wine, как говорится, не Windows, вы не можете надежно протестировать его так. Я предлагаю запустить виртуальную машину в вашем Linux, что сделает вашу работу более гладкой.

3) Это звучит возможно, для графического аспекта я бы также рассмотрел GTK +, который использовался для GIMP, и работает одинаково в Windows и Linux.

Ответ 5

Вы подразумеваете, что приложения предназначены только для Windows, а не для кросс-платформенных, и в этом случае я думаю, что ответ на 3. - Это действительно не очень хорошая идея - превосходит остальных.

Причина в том, что вам придется широко тестировать приложение под Windows в любом случае, прямо или в виртуальном экземпляре. Это значит, что вам лучше развиваться под целевой ОС, потому что вы с большей вероятностью создадите лучшее приложение - как от ловушек ошибок раньше, так и от тщательности и обеспечения того, чтобы ваше приложение "работало" для ваших пользователей. Я, конечно, не доверял бы просто Wine.

Я не большой поклонник кросс-платформенных виджетов. Как и Java-приложения, вы, как правило, получаете что-то, что не совсем корректно, и, как и сверхъестественный разрыв, которого может быть достаточно, чтобы ваше приложение плохо пахнуло большому участку ваших пользователей. Даже на немного более абстрактном уровне каждое приложение ОС имеет немного другое представление о том, как они работают, и вы, скорее всего, окажетесь в приложении Windows, которое будет похоже на, скажем, KDE, который снова отключит пользователей.

Так что да, конечно, возможно это сделать, но, вероятно, не оптимальный подход с точки зрения качества конечного продукта. Чтобы сделать это, вы получите что-то от гандикапа с тем, что вы производите, и я бы сказал, что это может компенсировать вам удобство использования платформы Linux. На самом деле я был бы удивлен, если бы вы справились даже с этим, потому что я бы поспорил, что вы потратите больше времени на возиться с виджетами, пытаясь их точно настроить, чтобы они работали прямо под реальной Windows, чем вы получите от использования незнакомой Windows набор инструментов.

Ответ 6

В любом случае вам понадобится лицензия MSDN, чтобы получить доступ ко всему множеству версий Windows, которые вы хотите протестировать.

Вам нужно установить тестовые ОС на виртуальные машины. Это может быть на вашем рабочем столе Linux, но выделенное поле может быть лучше.

Я не знаю, сколько версий Windows вы планируете поддерживать, но вы обязательно должны проверить их на всех. Wine - это не Windows, а Windows и XP не такие же, как Windows Vista, Windows 7 и т.д. Также существует множество разных дистрибутивов и языков Windows, некоторые из которых вы, несомненно, должны тестировать.

Во что бы то ни стало, развивайтесь в Linux. Во что бы то ни стало, используйте кросс-платформенные виджеты (да, это хорошо). Но вам все равно понадобится ваша лицензия MSDN, чтобы вы могли установить тестовые ОС.

Ответ 7

NSIS, Nullsoft Scriptable Install System может быть скомпилирована под Linux и используется для создания установочных файлов для Windows. Инструкции здесь. Прочтите общий раздел и раздел для создания на POSIX.

Я использую это для создания установок для нескольких проектов.