MOC Compiler und relativer Pfad

Verschiedenes zu Qt
Antworten
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

MOC Compiler und relativer Pfad

Beitrag von Nash »

Hi!

Ich arbeite mit VS 2005 als IDE, und möchte alle meine mit dem MOC compiler generierten Files in einen extra Ordner packen.
in etwa so hier:

Code: Alles auswählen

//$(QTDIR)\bin\moc.exe "$(InputPath)" -o "$(ProjectDir)\src\QT_Generated_FILES\moc_$(InputName).cpp"
funktioniert auch, nur leider spinnt dann VS rum, selbst wenn ich nix an meinem Quellcode ändere, will er neu compilieren.
er erstellt mir immer eine neue moc File.

Wenn ich die Moc aber in dem selben Pfad speichere wie die header File funktioniert es, er erstellt mir keine neue moc file

Code: Alles auswählen

//$(QTDIR)\bin\moc.exe "$(InputPath)" -o "$(InputDir)moc_$(InputName).cpp"
Wisst ihr wie ich das Problem in VS lösen kann, das er mir nicht immer eine neue moc file generiert?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Und warum alles von Hand erstellen wenn man da eh nicht weiß wie alles zusammenhängt? qmake oder cmake sind doch wirklich nicht so schwer :)

In 'Ausgaben' muss noch die Ausgabedatei rein (mit Pfad), in 'Abhängigkeiten' noch die Header-Datei (also die Eingabedatei, auch mit Pfad). Des weiteren sollte dem moc-Aufruf die gleichen Includepfade übergeben werden wie dem Compiler.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

ich möchte qmake nicht benutzen weil ich es nicht in VS integriergen kann...
oder kann man es doch?

ich stell mir das so vor, das ich qmake immer manuell ausführen muss, über eine bat datei oder so...das dauert mir zu lange, F5 und fertig kompilliert.

jedenfalls hast du recht, den Ausgabe Pfad hatte ich nicht geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich würde mal die qmake-Doku lesen...
Option '-tp vc'
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

soweit ich das alles verstanden habe gibt es nur für die Komerzielle Version von QT vollen Support für VS 2005.
Developers using Visual Studio to write Qt applications can use the Visual Studio integration facilities provided with the Qt Commercial Editions and do not need to worry about how project dependencies are managed.
Da ich aber die open Source Variante benutze, muss ich halt den Patch und sonstige tricks anwenden damit ich VS anwenden kann.

QMake läuft ausserhalb von VS und wenn ich haufen sachen änderen am meinem Projekt, was nicht nur ein reines QT projekt ist, dann muss ich mir extra wieder eine Projekt datei über QMAKE erstellen lassen, darauf hab ich halt keine Lust...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Nash hat geschrieben:soweit ich das alles verstanden habe gibt es nur für die Komerzielle Version von QT vollen Support für VS 2005.
Developers using Visual Studio to write Qt applications can use the Visual Studio integration facilities provided with the Qt Commercial Editions and do not need to worry about how project dependencies are managed.
Da ich aber die open Source Variante benutze, muss ich halt den Patch und sonstige tricks anwenden damit ich VS anwenden kann.
Und Du glaubst der Patch unterstützt nicht das .vcproj zu erstellen? Was denkst Du denn von mir?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

nun ja mit deinem tipp gestern funktioniert ja wieder alles prima, sag mir einen Grund warum ich qmake benutzen sollte?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Weil ich damit dann platformunabhängig bin. Und solche Fehler wie bei Dir nicht auftreten, zumal es ja noch uic und die resourcen gibt.
Aber im Grunde ist qmake nur für kleine Projekte die nicht so viele externe Abhängikeiten haben, gut zu gebrauchen. Ansonsten nehm ich cmake :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bst
Beiträge: 56
Registriert: 7. November 2006 13:16
Wohnort: Ilsfeld

Beitrag von bst »

Auch Hallo,
Ansonsten nehm ich cmake
Dieses hier ? http://www.cmake.org/HTML/Index.html

cu, Bernd
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

bst hat geschrieben: Dieses hier ? http://www.cmake.org/HTML/Index.html
Ja, oder gibts noch ein anderes ? ;-)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Nash
Beiträge: 118
Registriert: 27. April 2007 14:49

Beitrag von Nash »

und welche Vorteile bringt das mit sich?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Nash hat geschrieben:und welche Vorteile bringt das mit sich?
z.B. schonmal versucht mit qmake ne externe Lib korrekt einzubinden? Oder einen config-check zu machen ob ein bestimmter Header vorhanden ist oder eine Funktion? cmake ist ein kompletter automake-Ersatz, nur eben wesentlich besser (weil platformunabhängig, neuer ohne Altlasten), ausserdem wir cmake mit kde4 Standard. Die Syntax ist leicht verständlich und der Support hervorragend.

Hört sich zwar wie ne Werbebotschaft an, ist aber so :)

Nur ein wenig einarbeiten müsste man sich natürlich (aber wo ist das nicht der Fall?) --> http://qtnode.net/wiki/Qt_with_cmake


/edit: Nochwas - als für kde4 ein Buildsystem gesucht wurde war lange Zeit SCons im Gespräch und ich war sehr skeptisch gegenüber cmake. Aber wie man sieht hat sich das geändert :)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
bst
Beiträge: 56
Registriert: 7. November 2006 13:16
Wohnort: Ilsfeld

Beitrag von bst »

Hallo,
Christian81 hat geschrieben:
bst hat geschrieben: Dieses hier ? http://www.cmake.org/HTML/Index.html
Ja, oder gibts noch ein anderes ? ;-)
Danke.

cu, Bernd
Antworten