2013-02-12 16 views
5

Si tratta di un bug noto che i viaggi moc oltre macro utilizzate in libstdC++ come documentato qui: http://lists.kde.org/?l=necessitas-devel&m=132317657926916&q=rawFare moc file di salto/cartelle durante la generazione

Sto cercando di compilare un progetto che utilizza 4.6.3 gcc e sono bloccato a causa moc inciampa sulle macro.

Un modo per superare il problema è quello di includere le direttive come indicato in questo link:

http://doc.qt.io/qt-4.8/moc.html

ma che è in termini di tempo e non un modo molto pulito come ogni file deve avere queste direttive.

Quello che mi piacerebbe sapere è, può qmake essere configurato in modo da rendere moc saltare determinate directory/file?

modificato: errori di battitura

risposta

1

Secondo la Qt qmake docs moc saranno eseguiti per i file che vengono aggiunti alla HEADERS variabili (sottolineatura mia):

qmake genera informazioni sulle dipendenze (a meno che non sia specificato -nodepend sulla riga di comando) per le intestazioni specificate. qmake rileva automaticamente se Moc è richiesto dalle classi in queste intestazioni e aggiunge le dipendenze e i file appropriati al progetto per generare e collegare i file moc.

Quindi, se non si vuole moc da eseguire per alcuni file allora non li aggiungere al HEADERS nel file .pro. Tuttavia, per alcune piattaforme che potrebbero causare la mancata individuazione delle intestazioni durante la compilazione dei file .cpp corrispondenti. Per risolvere il problema, aggiungi un INCLUDEPATH per le cartelle contenenti tali intestazioni - moc non verrà eseguito per intestazioni all'interno di uno INCLUDEPATH.

+0

"Per risolvere il problema, aggiungi un INCLUDEPATH per le cartelle che contengono tali intestazioni - moc non verrà eseguito per intestazioni che si trovano all'interno di un INCLUDEPATH" che è diventato sbagliato per me (qt 5.3) – sshilovsky