2009-10-02 11 views
6

Estoy desarrollando una aplicación basada en qt y me gustaría desarrollar la versión de 32 y 64 bits de la aplicación en la misma máquina, compartiendo las mismas fuentes, scripts, etc. La máquina es un Ubuntu Jaunty de 64 bits, Intel Core i7, 8 gb ram. Soy consciente de que al ejecutar VMWare o VirtualBox puedo hacer que funcionen, sin embargo, no parece ser una buena solución ya que quiero usar el procesador (i7) en su plenitud. Leí acerca de un entorno chrooted y me parece que podría ser la configuración que estaba buscando: necesito que la máquina de desarrollo también pueda ejecutar los ejecutables que acabo de construir.¿La mejor configuración de Ubuntu para el desarrollo de aplicaciones Qt de 32 bits * Y * de 64 bits?

¿Tienes alguna experiencia en eso? ¿Configuraste un envio chrooted de 32 bits en un host de 64 bits? Funciona bien? ¿Cómo configurarlo correctamente?

Respuesta

5

He estado en una situación similar, pero no exacta. Estaba desarrollando aplicaciones Qt4 para Windows de 32 bits mientras ejecutaba Jaunty de 64 bits. Un entorno chroot le dará lo que quiera, con la menor molestia de tener que ir a la compilación de su aplicación de 32 bits.

Lo que hice para compilar para Windows fue configurar un compilador cruzado específicamente para ese propósito. Probablemente no tendrás que hacer eso. Probablemente pueda salirse con la compilación de g ++ -m32 a 32 bits. Para evitar tener que editar makefiles y un billón de veces, puede crear/modificar/usar los archivos de especificación que vienen con Qt, de modo que puede hacer "qmake -project & & qmake -makefile spec blablabla" (Si recuerdo la sintaxis de el comando correctamente).

+0

Descubrí que "/mkspecs /" contiene tanto linux-g ++-32 como linux-g ++-64 y estos agregan específicamente -m32 y -m64. Sin embargo, no soy práctico de chrootarse, entonces estoy buscando una guía o algo sobre cómo hacerlo y borrar algunos puntos oscuros que tengo sobre él, es decir, ¿tengo que comenzar otro Xserver para ejecutar la aplicación chrooted de 32 bits? ? – Manuel

+0

Si usa las mkspecs, no debería necesitar usar un chroot.Deberá tener instaladas las bibliotecas de 32 bits y de 64 bits en su máquina, pero después de eso, puede ejecutar "qmake -project && qmake -makefile linux-g ++ - && make". Entonces debería construir sobre cualquier bitness que desee. – ZachS

+0

Claro que tienes razón, ZachS, acabo de confundir un poco las cosas: voy a probar las mkspecs primero. – Manuel

3

También estoy en una situación similar, y aquí es como trabajo:

utilizo una versión hecha a la medida de Qt. Construyo Qt dos veces, con las mismas opciones de configuración, excepto para el parámetro -platform, la cual di a linux-g ++ - 64 para la primera construcción y linux-g ++ - 32 para la segunda generación. También utilizo un -prefix diferente para instalar ambas versiones en directorios separados.

Uso QtCreator para crear mis aplicaciones. He agregado ambas versiones de Qt en el diálogo Opciones -> Qt4 -> Qt versiones. Luego configuré dos configuraciones de compilación diferentes para mis proyectos, con las mismas opciones de compilación, pero una con el Qt dir de 32 bits y otra con el Qt dir de 64 bits. QtCreator se encarga de toda la magia, y simplemente necesito alternar entre las configuraciones de compilación para tener una aplicación Qt de 32 y 64 bits. Sin chroot, sin VM, sin nada, solo una compilación simple.

Sin embargo, hay una advertencia. La construcción de Qt para 32 bits obviamente requiere versiones de 32 bits de la mayoría de las bibliotecas de desarrollo (X libs, stdlibs, etc.), que se pueden obtener fácilmente en Ubuntu Jaunty con ia32-libs y lib32stdC++ 6. Las únicas bibliotecas que no he podido encontrar para el desarrollo de 32 bits en la arquitectura de 64 bits son las bibliotecas gstreamer, lo que significa que Phonon podría no funcionar. Necesitaba Phonon, así que trabajé arduamente creando Qt en una máquina virtual y luego copiando el directorio instalado de Qt en mi máquina dev.

Buena suerte.

+0

gracias, estaba buscando esto. Probaré su método VM sugerido – KGCybeX

+0

Necesito consultar su solución. Estoy compilando Qt5.5.1 en una máquina virtual Ubuntu 16.04 (i386/32bit). Además de los habituales './configure -prefix/path/to/Qt5-5-1/install /' y aceptar banderas de licencia, ¿especificó alguna plataforma específica o indicadores relacionados? Estoy usando './configure -opensource -nomake examples -nomake tests -confirm-license -prefix/opt/qt-5.5.1' ¿Me parece familiar, me falta alguna bandera? – KGCybeX

Cuestiones relacionadas