Domanda

Quindi ho una classe taggata Q_object, che richiede pregenerata .Moc per essere utilizzabile.

Nel mio file .qbs, ho un elemento CppApplication;Questo sembra essere il tipo sbagliato di progetto, poiché QBS non chiama moc ClassName.cpp per generare moc per me.Cosa dovrebbe essere usato invece / modificato?

-

Così sapevo la dipendenza da qt.core, ma non funzionava sulla mia installazione paralizzata di QT;Mentre stavo cercando di aggiustarlo, questi fatti sono venuti:

    .
  • È necessario rilevare QT Toolchain (qbs-setup-qt) e chiamare qbs-config-ui
  • QBS memorizza in effetti le regole di build in Core.QBS, collegate in via Qt / Core dipendenza.
      .
    • è possibile copiare / incollare le regole di compilazione nel mio file .qbs ed evitare dipendenze esterne;Sto considerando questo come un hack sporco per la distribuzione del codice su sistemi di build davvero paralizzati (ora ho una parola per il supporto Qt su Gentoo).
È stato utile?

Soluzione

Penso che potresti mancare la dipendenza dell'applicazione sui moduli QT. La regola per la generazione dei file MOC è parte del modulo Qt.core. Potresti aggiungere questa dipendenza con:

CppApplication {
    name: "MyApp"
    files: "path_to_source/**"

    Depends { name: "Qt.core" } // Optional
    Depends { name: "Qt.widgets" }
}
.

Poiché tutti gli altri moduli QT hanno una dipendenza implicita del Qt.core la dipendenza esplicita potrebbe su Qt.core potrebbe essere saltata se c'è una dipendenza da un modulo Qt diverso (Qt.Widgets in questo esempio). Maggiori dettagli è possibile trovare su http://doc.qt.io/qbs/qt-modules.html

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