Seite 1 von 1

Qt mit CMake, Problem bei MOC [gelöst]

Verfasst: 30. Juni 2011 09:20
von chrislo1976
Hallo zusammen!


Ich möchte eine Qt-Solution mit CMake erstellen. In einer CPP-Datei wird eine von moc generierte Datei aufgerufen:

Code: Alles auswählen

#include "qtservice_win.moc"
Diese moc-Datei wird aber nicht erstellt. Ich habe alle Header-Dateien mittels QT_WRAP_CPP eingebunden. Bei Klassen mit Q_OBJECT im Header und keinem solchen Include von oben funktioniert das auch.

Für diese Datei existiert kein Header. Deswegen hab ich auch versucht, die cpp-Datei mittels QT_GENERATE_MOC() einzubinden. Hier wird zwar dann die moc-Datei erstellt, es kommt dann aber die Fehlermeldung:

Code: Alles auswählen

"The header file 'qtservice_win.cpp' doesn't include <QObject>."
Man könnte diese Sourcen sicherlich anpassen, damits funktioniert; aber eigentlich will ich das nicht! Ich müsste das ja jedesmal wieder machen, wenn es z.B. eine neue Version gäbe.

Hat vielleicht von den CMake-Experten einer eine Idee?

Gruß,
Christian

Verfasst: 30. Juni 2011 12:47
von chrislo1976
Hallo!


Nach weiterem Nachlesen und Probieren hab ich das Problem jetzt rausgefunden:

Wenn moc-Dateien manuell mittels

Code: Alles auswählen

#include "xyz.moc"
eingebunden werden, dürfen diese (scheinbar?!) nicht direkt kompiliert werden.
Deshalb habe ich diese MOC-Dateien jetzt bei

Code: Alles auswählen

add_executable(...)
rausgenommen, und schon funktionierts!

Gruß,
Christian