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

Alles rund um die Programmierung mit Qt
Antworten
chrislo1976
Beiträge: 105
Registriert: 24. Februar 2008 09:45

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

Beitrag 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
Zuletzt geändert von chrislo1976 am 30. Juni 2011 12:47, insgesamt 1-mal geändert.
chrislo1976
Beiträge: 105
Registriert: 24. Februar 2008 09:45

Beitrag 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
Antworten