2009-12-19 16 views
9

¿Cómo puedo compilar de forma cruzada mi aplicación en Qt.? En cuanto a cada proyectoCómo cruzar la aplicación compilar qt para diferentes plataformas

Necesito dos versiones

1). Que se ejecuta en la computadora en Qvfb & i386 Arquitectura

2). Que se ejecuta en el dispositivo con Linux Framebuffer & ARM Arquitectura

Ya he compilado Qt para el dispositivo y para Qvfb. Puedo ejecutar ejemplos en ambas plataformas, pero ¿cómo puedo realizar una compilación cruzada de mis aplicaciones? Preferiría que ambas salidas permanezcan en directorios diferentes, eso significa que la salida de i386 permanece en la plataforma output-i386 y la salida de ARM permanece en el directorio output-ARM.

Estoy usando Qt 4.6 para Embedded Linux.

Respuesta

2

Qt toma todos los detalles específicos de la plataforma del archivo mkspec.

Especifique el archivo mkspec en qmake para realizar una compilación cruzada mediante el argumento -spec de línea de comando de qmake.

en el archivo mkspec hay muchas define mediante los cuales puede personalizar la compilación de diferentes plataformas que puedo utilizar DESTDIR para enviar el archivo de salida final para el directorio particular, OBJECTS_DIR enviar el archivo de objetos directorio particular. MOC_DIR para enviar archivos moc generados a un directorio particular, UI_DIR a encabezados generados uic y archivos cpp al directorio particular.

2

El final de this article le muestra cómo cambiar qmake en un directorio de trabajo (primero necesita ejecutar make destclean). Este otro artículo describe el entorno básico Qt for embedded Linux, solo para darle una idea general.

4

Puede simplemente configurar DESTDIR en su archivo .pro. Ver the qmake variable reference. También es posible que desee ajustar las variables OBJECTS_DIR, UI_DIR, MOC_DIR y RCC_DIR.

+0

Definitivamente ajustar los otros directorios también. De lo contrario, puede intentar vincular objetos creados para una plataforma en un ejecutable creado para el otro. –

Cuestiones relacionadas