2009-08-06 10 views
12

Mi sistema operativo principal es Linux, pero ahora estoy obligado a escribir algunas aplicaciones C++ para Windows. Estaba pensando en desarrollar en la caja de Linux con bibliotecas multiplataforma como WxWidgets (y algunos se preocupan por otras dependencias de plataforma) y luego compilar cruzado el resultado para el objetivo mingw.¿Desarrollando aplicaciones de Windows en Linux?

Así las herramientas de las que estoy pensando usar son

  • g ++ para su recopilación y compilación cruzada.
  • CMake
  • WxWidgets
  • ??? para la fabricación de paquetes de Windows Installer
  • vino para la prueba de la versión de Windows

Y mis preguntas:

  1. ¿Cuáles son algunos instaladores libres (o incluso mejor de código abierto) para Windows que podría utilizar para crear el paquete final? Ayudaría si el paquete se pudiera preparar desde Linux.

  2. ¿Será suficiente Wine para probar la versión compilada cruzada (después de todo, la lógica se prueba en la versión de Linux)?

  3. ¿Es esta una buena idea? :-)

+6

Si usted tiene una copia de Windows a mano, se ejecuta una instancia de VirtualBox no podría lastimar para la prueba tampoco. – Amber

+0

Para las pruebas al menos Virtual Box es bueno, por supuesto, lo mejor es una que sí instalación de Windows .. Trate de escribir esa aplicación en Windows. Me gusta Linux yo mismo. pero si tu edificio para Windows. La programación en Windows es lo mejor que puedes hacer (para aplicaciones de Windows por supuesto). –

Respuesta

15

Compruebe Qt también. Es un marco multiplataforma muy rico.

En cuanto a los instaladores, recomiendo encarecidamente WiX.

Para las pruebas, será mucho mejor usar algún tipo de virtualización como VirtualBox de Sun Microsystems. Creo que se puede utilizar una versión de prueba de Windows o Windows 7 RC, que es de uso gratuito hasta marzo de 2010.

2
    • InstallJammer le permite crear instaladores para * nix y Windows. No estoy seguro de si permite la creación cruzada de instaladores (es decir, la creación de instaladores de Windows desde * nix). Una opción comercial con demostración disponible para probar es el Bitrock InstallBuilder.
    • Tal vez ... Si usted tiene una licencia de Windows, la sugerencia de Dav sería mejor.
    • Si ayuda a trabajar mejor/más eficiente & eficaz, seguro.

nos mantienen informados sobre cómo le va - esto es interesante.

2

2) No, vino como dice que no es Windows, no puedes probarlo de manera confiable. Sugiero ejecutar una máquina virtual en tu Linux, que hará que tu trabajo sea mucho más fluido.

3) Parece posible, para el aspecto gráfico también consideraría GTK+ que se usó para GIMP, y funciona de manera muy similar en Windows y Linux.

2

Usted implica que las aplicaciones son solo para Windows y no multiplataforma, en cuyo caso creo que la respuesta a 3. - Esto realmente no es una buena idea - supera el resto.

El motivo es que tendrá que probar exhaustivamente la aplicación en Windows de todos modos, ya sea directamente o en una instancia virtual. Siendo así, es mejor que desarrolles bajo el sistema operativo objetivo porque es más probable que produzcas una mejor aplicación, tanto para detectar los errores antes como para garantizar que la aplicación "funcione" para tus usuarios. Ciertamente no confiaría en soloWine.

No soy un gran admirador de los widgets multiplataforma. Al igual que las aplicaciones Java, generalmente tiene algo que no se ve bastante, y le gusta el extraño espacio que puede ser suficiente para hacer que su aplicación huela mal a una gran parte de los usuarios. Incluso en el nivel un poco más abstracto, las aplicaciones de cada sistema operativo tienen una sensación ligeramente diferente de cómo funcionan y es muy probable que termines con una aplicación de Windows que se siente como, por ejemplo, KDE, que volverá a desconectar a tus usuarios .

Así que sí, sin duda es posible hacer esto, pero probablemente no sea el enfoque óptimo desde el punto de vista de la calidad del producto final. Hacerlo te dará una desventaja con lo que produces y diría que es probable que te compensen la conveniencia de usar una plataforma Linux. En realidad, me sorprendería si logras incluso eso, porque apostaría a que pasarás más tiempo jugando con los widgets tratando de ajustarlos para que funcionen directamente bajo Windows real de lo que ganarás al usar un Windows desconocido. conjunto de herramientas.

3

En primer lugar, sí, es una buena idea. Tengo varios proyectos que mantengo su versión de Windows de esta manera.

En cualquier caso, le sugiero que pruebe el producto final en la máquina con Windows. Si tiene una licencia para el sistema operativo Windows, puede usar la virtualización para hacer las pruebas finales.

Sugiero usar Autotools que tiene muy buen soporte de compilación cruzada y funciona "de forma nativa" con un compilador cruzado.

En Debian, por ejemplo, correr

./configure --host=i586-mingw32msvc 

Esto crearía la correcta compilación makefile cruz como si esto era proyecto de Unix.

En cualquier caso, recomendaría desarrollar una versión multiplataforma y prueba de tiempo a tiempo versión nativa de Windows con Wine/Windows mediante compilación cruzada.

+0

¿Es una desventaja que no podamos usar los perfiladores? Y más si entiendo correctamente los procedimientos de optimización varían considerablemente de un sistema operativo a otro. ¿Cómo podría abordar esto? ¿O es mejor tener algo que funcione y preocuparse por la optimización en la 'prueba final en Windows', como ya lo mencionó? – sjsam

1

Necesitará una licencia de MSDN de todos modos para tener acceso a todas las múltiples versiones de Windows que desee probar.

Deseará instalar los SO de prueba en las máquinas virtuales. Esto podría estar en su escritorio Linux, pero una caja dedicada podría ser mejor.

No sé cuántas versiones de Windows planea soportar, pero definitivamente debe probarlas todas. Wine no es Windows, ni Windows   XP es lo mismo que Windows   Vista, Windows   7, etc.También hay muchas distribuciones e idiomas diferentes de Windows, algunos de los cuales sin duda deberías probar.

Por todos los medios, el desarrollo en Linux. Por supuesto, use widgets multiplataforma (sí, estos son buenos). Pero aún necesitará su licencia de MSDN para que pueda instalar los sistemas operativos de prueba.

0

NSIS, el Nullsoft Install System secuencias de comandos se puede compilar en Linux y se utiliza para producir instalar binarios para Windows. Las instrucciones son here. Lea la sección general y la sección para construir en POSIX.

Lo utilizo para producir instalaciones para algunos proyectos.

+1

Realmente encuentro que NSIS es algo malo. Después de trabajar o mejor tratar de trabajar con NSIS un par de días, me siento el dolor en todas partes ... No informa de errores (no hay nada como escribir un registro de todo lo que incluye errores y comandos que no tuvieron éxito), las asignaciones de variables y el uso no me parece claro. No es realmente divertido. – Henning

+0

Utilizo Inno Setup y es realmente el mejor. –

Cuestiones relacionadas