2009-12-19 17 views
9

Come posso eseguire la cross-compilazione della mia domanda su Qt. Come per ogni progettoCome compilare l'applicazione qt di compilazione per piattaforme diverse

ho bisogno di due versioni

1). Che gira su computer su Qvfb & i386 Architecture

2). Che funziona sul dispositivo con Linux Framebuffer & ARM Architecture

Ho già compilato Qt per il dispositivo e per Qvfb. Sono in grado di eseguire esempi su entrambe le piattaforme, ma come posso eseguire la cross-compilazione delle mie applicazioni. Preferirei che entrambe le uscite rimangano in directory diverse, il che significa che l'output di i386 rimane nella piattaforma di output-i386 e l'uscita di ARM rimane nella directory ARM di output.

Sto utilizzando Qt 4.6 per Embedded Linux.

risposta

2

Qt prende tutti i dettagli specifici della piattaforma dal file mkspec.

Specificare il file mkspec su qmake per eseguire la compilazione incrociata utilizzando l'argomento della riga di comando -spec di qmake.

nel file di mkspec ci sono molti definisce con cui è possibile personalizzare la compilazione per diverse piattaforme, come posso usare DESTDIR per inviare file di output finale di particolare directory, OBJECTS_DIR di inviare file di oggetti di particolare directory. MOC_DIR per inviare file generati da moc a particolari dir, UI_DIR in intestazioni generati uic e file cpp in directory particluar.

2

La fine di this article mostra come modificare qmake in una directory di lavoro (è necessario eseguire make destclean prima). Questo altro articolo descrive l'ambiente di base Qt for embedded Linux, solo per darti una visione d'insieme.

4

È sufficiente impostare DESTDIR nel file .pro. Vedi the qmake variable reference. Si potrebbe anche voler regolare le variabili OBJECTS_DIR, UI_DIR, MOC_DIR e RCC_DIR.

+0

Regola definitivamente anche le altre directory. Altrimenti, potresti provare a collegare oggetti creati per una piattaforma in un eseguibile costruito per l'altro. –

Problemi correlati