Domanda

Ho appena iniziato a utilizzare Qt e notato che utilizza il proprio strumento di make , qmake .

  • Perché Qt utilizza un proprio strumento di marca?
  • C'è qualcosa di speciale che impedisce di utilizzare uno strumento standard fanno?
  • Fa qmake chiamare il GCC compilatore C ++?
È stato utile?

Soluzione

Qt usa qmake per supportare in modo trasparente i vari addons di Qt, tra cui "moc, il compilatore meta-oggetto" (che fornisce segnali e slot) "UIC, il compilatore ui" (che crea file di intestazione da file di design .ui), "rcc, il compilatore di risorse" (che raccoglie le risorse).

Non c'è nulla che impedisca di utilizzare qualsiasi sistema di compilazione che si desidera. tuttavia, è molto più lavoro. Ad esempio, è necessario eseguire "moc" su ogni file di intestazione che contiene una classe che ha segnali o slot. In generale, non è consigliabile, soprattutto per qualcuno che ha appena iniziato a utilizzare Qt.

QMake non chiama g ++ / gcc direttamente. Invece, qmake crea file make native su piattaforma corrente. Sotto Linux crea GNU Make file standard, sotto le finestre può generare Visual Studio rendere i file, in Mac OS X è in grado di generare file di progetto XCode. È quindi richiama il vostro sistema di compilazione nativa (sia GNU Make, o MS NMake, o xcodebuild o altro), che chiamerà il compilatore nativo (g ++ / gcc o qualsiasi altra cosa).

Altri suggerimenti

Nel mio opinnion qmake è fresco per progetti semplici (si può semplicemente qmake -project; qmake; fare), ma orribile e non abbastanza documentato per progetti abbastanza grande. In particolare la funzionalità di configurazione di qmake è uno scherzo.

I migliori sistemi di compilazione che conosco sono CMake e Waf (Python -based). Nei miei Qt-progetti che uso CMake per fare il lavoro. Proprio come KDE-ragazzi:)

Per sostenere il suo sistema di segnale / slot di Qt si basa su un preprocessore speciale e compilatore che genera oggetti intermedi che fanno molte delle elaborazioni. Essi si riferiscono a questo come il Meta-Object Compiler o MOC .

Qt 5 Documentazione: con il compilatore Meta-Object per i dettagli .

La MOC (insieme a un paio di altri strumenti intermedi) funziona in combinazione con qmake; un costruire strumento di automazione che produce Makefile nel formato nativo (VC ++, g ++, etc.) che si accumulano i file intermedi generati dal MOC così come tutti i tuoi file di origine nel eseguibile finale.

qmake è progettato per essere piattaforma trasversale e flessibile. Si può compatibile con Microsoft Visual Studio e Xcode.

È possibile trovare tutto nella qmake Manuale .

  

qmake genera un Makefile sulla base di   le informazioni in un file di progetto.   I file di progetto vengono creati dal   sviluppatore, e di solito sono semplici, ma   i file di progetto più sofisticati possono   essere creato per progetti complessi. qmake   contiene funzionalità aggiuntive per   sostenere lo sviluppo di Qt,   compresi automaticamente costruire regole   per moc e UIC. qmake può anche   generare progetti per Microsoft Visual   Studio senza richiedere lo sviluppatore   per modificare il file di progetto.

Per

a), perché fa molto dietro le quinte per voi

b) sì, vedi a)

c) sì, lo fa chiamata g ++ (ma in grado di supportare altri compilatori se li avete)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top