Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Problema con moc



  • Cerco di spiegare il problema.
    Ho una cartella in cui ho raccolto gli header file che mi tornano utili per piu' programmi, mentre in un'altra cartella ho messo i relativi source file.
    Ho impostato la variabile d'ambiente CPLUS_INCLUDE_PATH con questi due nuovi percorsi.
    In questo modo, al mio progetto aggiungo lib.cpp in cui richiamo gli include dei source file che devo richiamare nel programma.
    Fintanto che questi file non richiamano Q_OBJECT, la compilazione va a buon fine, se invece c'e' un qualche file che richiama Q_OBJECT, ottengo l'errore 'undefined reference to vtable', 'undefined reference to classname::staticmetaobject', ecc.

    Da quello che ho potuto intuire, dovrebbe essere moc che non genera niente per proprio per quei file con Q_OBJECT che stanno nelle cartelle al percorso di CPLUS_INCLUDE_PATH.
    E' possibile specificare in qualche modo di andare a 'trattare' anche quei file?
    Spero di essermi spiegato.
    Grazie.



  • se usi qmake (Qt Creator) ti basta aggiungere qualcosa tipo HEADERS += $$(CPLUS_INCLUDE_PATH)/*.h al file .pro e re-runnare qmake



  • Perfetto, proprio quello di cui avevo bisogno.
    Ci giravo in giro a questo genere di soluzione da qualche tempo, ma tenevo sempre CPLUS_INCLUDE_PATH tra %, e quindi non funzionava...
    L'unica cosa e' che non so perche' windows al percorso della variabile d'ambiente alla fine ha aggiunto ";", che ovviamente rendeva inutilizzabile la soluzione.
    Modificata la variabile togliendo il ; finale, tutto funziona. Grazie
    Ed ora come si fa a segnare che il problema e' risolto?


Log in to reply