Come configuro Qt per cross-compilation da Linux a Windows target?

Voglio incrociare le librerie Qt (e infine la mia applicazione) per una destinazione Windows x86_64 usando un computer host Linux x86_64. Mi sento come se fossi vicino, ma potrei avere una fondamentale incomprensione di alcune parti di questo processo.

Ho iniziato installando tutti i pacchetti mingw sulla mia macchina Fedora e quindi modificando il file qmake.conf win32-g++ per adattarlo al mio ambiente. Tuttavia, mi sembra di rimanere bloccato con alcune opzioni di configurazione apparentemente ovvie per Qt: -platform e -xplatform . La documentazione di Qt afferma che la -platform deve essere l’architettura della macchina host (dove si sta compilando) e che -xplatform deve essere la piattaforma di destinazione per la quale si desidera distribuire. Nel mio caso, ho impostato -platform linux-g++-64 e -xplatform linux-win32-g++ dove linux-win32-g ++ è la mia configurazione win32-g ++ modificata.

Il mio problema è che, dopo aver eseguito la configurazione con queste opzioni, vedo che richiama il compilatore del mio sistema invece del cross-compilatore (x86_64-w64-mingw32-gcc). Se -xplatform opzione -xplatform e set -platform sulla mia specifica di destinazione (linux-win32-g ++), richiama il cross compiler ma poi gli errori quando trova alcune funzioni relative a Unix non sono definite.

Ecco alcuni risultati del mio ultimo tentativo: http://pastebin.com/QCpKSNev .

Domande:

  1. Quando si esegue la compattazione incrociata di qualcosa come Qt per Windows da un host Linux, il compilatore nativo dovrebbe mai essere invocato? Cioè, durante un processo di compilazione incrociata, non dovremmo usare solo il cross compilatore? Non vedo perché lo script configure di Qt tenti di richiamare il compilatore nativo del mio sistema quando specifico l’opzione -xplatform .

  2. Se sto usando un cross-compiler mingw, quando avrò a che fare con un file specs? I file delle specifiche per GCC sono ancora una specie di mistero per me, quindi mi chiedo se qualche sfondo qui mi aiuterà.

  3. In generale, oltre a specificare un cross-compilatore nel mio qmake.conf, cos’altro dovrei prendere in considerazione?