Seite 1 von 2
[gelöst] Qt Projekt in Vis. Studio Projekt umwandeln scheite
Verfasst: 26. Februar 2008 23:11
von pospiech
Ich habe ein bisher .pro und mingw basiertes Projekt, das ich jetzt in Visual Studio mit nmake statt mingw weiterbearbeiten möchte.
Dazu habe ich Qt heruntergeladen und mit nmake nach Anleitung von qt2005.pdf kompiliert.
Ein bisheriges in VS erstelltes Qt Projekt kompiliert jetzt auch durch.
Zusätzlich ist noch QtVSAddin installiert.
Jetzt habe ich in VS2005 ein neues leeres Qt Projekt erstellt und die bisherigen .ui, .h und .cpp Datei dort hinzugefügt.
Wenn ich jetzt eine einzelne Datei kompipilieren möchte scheitert es aber mit
fatal error C1083: Datei

nclude) kann nicht geöffnet werden: "QtGui": No such file or directory
Dabei ist QTDIR gesetzt und in dem Projekt auch $(QTDIR)/include; als Pfad eingetragen. Das Include Verzeichnis ist ebenfalls in PATH.
Wenn ich alles neu kompilieren möchte dann bekomme ich andere Fehler
1>Compiling UI file mainwindow
1>Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
1>Project : error PRJ0019: Ein Tool hat einen Fehlercode aus folgender Quelle zurückgegeben: "Compiling UI file mainwindow"
Offensichtlich wird von Qt nichts gefunden. Was sollte ich nun anders machen? Das andere Projekt kompiliert ja anstandslos.
Matthias
Verfasst: 27. Februar 2008 01:11
von Volker
Ohne jetzt weiter drüber nach zu denken, kann ich nur folgende Tips geben:
wenn Du QTDIR/include angibst, dann kann QtGui nicht gefunden werden, da die Datei im Verzeichnis QTDIR/include/QtGui liegt.
Und bzgl. dem Fehler mit UI und der mainwindow, da scheint was im Benutzerdefinierten Buildschritt nicht zu stimmen... evtl. liefert das Output Window diesbezüglich mehr Infos.
Verfasst: 27. Februar 2008 07:44
von Christian81
Benutzt
qmake anstatt alles selbst in Visual Studio einzutragen! Alles andere ist sinnlos.
Verfasst: 27. Februar 2008 07:57
von pospiech
Christian81 hat geschrieben:Benutzt
qmake anstatt alles selbst in Visual Studio einzutragen! Alles andere ist sinnlos.
Ich bin bislang so vorgegangen wie im Dokument qt2005.pdf vorgeschlagen.
Dabei wird qmake nicht benutzt. Daraus ergibt sich für mich natürlich die Frage wie ich qmake innerhalb von Visual Studio benutzte? Über eine extra Kommandozeile?
Matthias
Verfasst: 27. Februar 2008 08:00
von Christian81
Forum-Suche würde ich mal vorschlagen. Ausserdem habe ich auf die qmake-Doku nicht umsonst verlinkt. qmake erstellt .vcproj - Files mit allen Dingen die man bei Qt beachten muss und warum dieses doofe Dokument denkt man müsste (für Anfänger) alles von Hand in VS eingeben verstehe ich nicht...
Verfasst: 27. Februar 2008 09:39
von Volker
Das doofe Dokument findet es praktisch nicht alles in einer QMake Datei eintragen zu müssen. Ich selbst arbeite damit lieber, da ich praktisch nur unter Windows und Visual Studio entwickle.
Ist ja jedem selbst überlassen wie er/sie es macht, deswegen muss man nicht gleich patzig werden.
Verfasst: 27. Februar 2008 09:51
von Christian81
Das Problem bei dem alles selbst eintragen (und keinen Hinweis auf qmake) ist, dass Anfänger das leicht falsch machen da sie nicht verstehen was das alle soll. Ein kleiner Hinweis a'la 'mit "qmake -tp meinprojekt.pro" wird das .vcproj ohne Handarbeit erstellt' wäre da sicherlich sehr hilfreich. Man sieht es ja hier im Forum - jede Woche einer mit den selben Problem weil sie dort was falsch eintragen. Ist nicht bös gemeint - nervt nur ungemein.
Verfasst: 27. Februar 2008 09:56
von VuuRWerK
Ich hab vorher auch immer mit QDevelop oder halt der Konsole gearbeitet. Hab letzte Woche mir mal das PDF von Volker zur Brust genommen um das ganze mit dem VS2008 Express hinzubekommen, hat wunderbar funktioniert. Was natürlich etwas unangenehm ist, ist das händische erstellen der Build-Rule für die *.h aber das ist bei kleineren Projekten zu verkraften. Eine Standard Build-Rule für die *.ui wird in dem PDF wunderbar erklärt.
Da es unter den Express Versionen nicht so ohne weiteres möglich ist eigene AddIns zu integrieren suche ich derzeit noch nach einer Möglichkeit, sollte ich eine gefunden haben werde ich mir die manuellen Vorgänge damit automatisieren. Das AddIn von Volker funktioniert bei den Express Versionen anscheinend nicht, zumindestens nicht bei der 2008er.
Vorallem werde ich mir dann ebenfalls noch etwas einbauen was mir parallel zu den VS-Projectfiles die *.pro Files erstellt um so gleich die Möglichkeit zu haben das ganze Projekt gleich mit qmake zu kompilieren.
Was ich eigentlich mit meinem Geschwafel sagen wollte, dass ich das "Dokument" nicht doof finde
Gut Schuß
VuuRWerK

Verfasst: 27. Februar 2008 11:05
von Volker
Hab vor kurzem auch mal angefangen, das AddIn für VS 2008 zu entwickeln, aber bin gerade mit vielen anderen Dingen beschäftigt und komm deshalb nicht dazu. Meine Idee ist eigentlich auch mal gewesen, über das AddIn eine .pro Datei automatisch mit abgleichen zu lassen. Erster Schritt dahin war der "QMAKE Projektdatei erzeugen" Befehl, der aber noch weit davon entfernt ist, wirklich gut zu funktionieren.
Mit den AddIns kann man in Visual Studio eigentlich recht viel machen, allerdings fehlt mir momentan leider die Zeit.
Von den Custom Build Rules bin ich mittlerweile wieder etwas weg gekommen, da es bei mir Probleme mit Setup Projekten gab. Beim aktuellen VsQtAddIn werden stattdessen die Custom Build Steps automatisch für Ui Dateien und Header Dateien die Q_OBJECT beinhalten eingetragen. Das verhindert auch, dass für alle Header ein moc file angelegt wird obwohl gar kein Q_OBJECT im Header enthalten ist.
Bzgl. Christian: Einen Hinweis kann ich bei Gelegenheit zwar mal einbauen, allerdings denke ich, da es in der QMake Doku steht und mein Dokument qmake ja gar nicht verwendet, dass es eigentlich unnötig ist. Das die Leute keine Suchfunktion benutzen bevor sie hier posten, oder sich mal die Trolltech Doku angucken kann ich auch nicht ändern. Und wenn's dich nervt, ignoriere die Posts halt einfach und hoffe, dass jemand anderes hilft.
Verfasst: 27. Februar 2008 12:27
von RHBaum
Das problem mit dem .pro files:
Wenn du was an den QT einstellungen aenderst, und dann das vcproj damit updaten laesst, sind alle vorherigen einstellungen in der vcproj floeten.
Hinzu kommt, in der .pro datei kannst du nur rudimentaere Dinge einstellen ... das langt meist fuer nen Erweitertes hallo world, das wars.
Zusaetzliche Linker / include einstellungen mit relativen Pfaden ($() Aufloesung), Projektbezogene Ablageorte fuer die temp und zieldateien ...
....
etc, alles ned mit der .pro einstellbar.
Also fuer jedes ernstzunehmendes Project wirst deine Einstellungen in der vcproj pflegen muessen. Also ist man besser bedient, man lernt die QT ueber die vcproj zu bedienen ... oder man bleibt ewig bei Hello World programmen.
Man kann ne .pro erstellen und ne vcproj draus generieren ... und dann immer nur die vcproj verwenden. Aber irgendwann wird man auch da QT einstellungen aendern muessen.
BTW, die ganzen professionellen QT plugins arbeiten direkt mit VS zusammen. Da braucht man die .pro eigentlich ueberhaupt ned mehr, man kann gleich lauffaehige vcproj Projecte erstellen.
Dementsprechend sehe ich qmake und .pro als (unkonfortable)Anfaengerhilfe, aber ned als ausgereiften Mechanismus an
... Leider sind die professionellen QT Plugins nur bei der pro lizens bei. Fuer anfaenger waeren die auch super geeignet, zig mal besser wie qmake.
Wenn ich nen QT projekt auf opensource basis erstelle (also ohne Plugins) und mit der Express Version, bzw dem gcc, verwend ich qmake auch scho lange nimmer, sondern trag alles per hand ein .. wenn man weiss wie isses fast genau so schnell als wie nen.pro anzupassen ...
Ciao ...
Verfasst: 27. Februar 2008 12:41
von Christian81
RHBaum hat geschrieben:
Wenn ich nen QT projekt auf opensource basis erstelle (also ohne Plugins) und mit der Express Version, bzw dem gcc, verwend ich qmake auch scho lange nimmer, sondern trag alles per hand ein .. wenn man weiss wie isses fast genau so schnell als wie nen.pro anzupassen ...
.
Coole Fleissarbeit - nur gut das kde ein ordentliches Buildsystem hat...
qmake ist für Anfänger nunmal das beste - allein aus dem Grund dass sie sich eben erstmal
nicht um irgendwelche Flags für moc oder uic oder was auch immer rumschlagen müssen. Das qmake für grosse Projekte nicht benutzbar ist muss man mir nicht sagen.
Was ich eigentlich will ist a nur ein kleiner Hinweis in dme pdf dass es qmake gibt und der die .vcproj-Dateien gut erstellen kann. Und schon hätten wir nicht jede Woche das gleiche zu diskutieren.
Verfasst: 27. Februar 2008 12:51
von RHBaum
Coole Fleissarbeit - nur gut das kde ein ordentliches Buildsystem hat...
Na so viel isses nu auch wieder ned ... ok, ich geb zu ich hab ein template make file, das pass ich nur noch an ^^
und auch vcproj's kann man gut im editor bearbeiten.
Du meinst das buildsystem von KDevel, das hat doch die ganzen QT projectvorlagen, was einem gleich annehmbare makefiles erzeugt ... ??? oder was meinst du.
allein aus dem Grund dass sie sich eben erstmal nicht um irgendwelche Flags für moc oder uic oder was auch immer rumschlagen müssen.
Seh ich ned so ... qmake ist unkomfortabel und fehleranfaellig, leider ...
Den einzigen vorteil den es hat, das es plattformunabhaengig verfuegbar ist.
eine wesentlich Idealere Loesung waere, wenn die Comilerhersteller alle QT als beliebte GUI platform akzeptieren und selber geeignete Plugins erzeugen wuerden ... leider wird dass nur nen traum bleiben.
Noch besser waer ne gescheite bedienbare opensource oder GPL IDE fuer den gcc, die nen buildsystem fuer QT mitbringt.
Also mit code::blocks und dev-cpp stoesst man viel zu schnell an grenzen leider ...
MS beizubringen die Plugin Technologien in den express varianten scharzuschalten, wird auch nen ding der unmoeglichkeit bleiben ...
Ciao ...
Verfasst: 27. Februar 2008 12:59
von Christian81
RHBaum hat geschrieben:Coole Fleissarbeit - nur gut das kde ein ordentliches Buildsystem hat...
Na so viel isses nu auch wieder ned ... ok, ich geb zu ich hab ein template make file, das pass ich nur noch an ^^
und auch vcproj's kann man gut im editor bearbeiten.
Du meinst das buildsystem von KDevel, das hat doch die ganzen QT projectvorlagen, was einem gleich annehmbare makefiles erzeugt ... ??? oder was meinst du.
Nicht kdevelop - das Buildsystem um z.B. kdevelop zu bauen. Also cmake.
Aber nun genug - ich werde auf solche Fragen demnächst nicht mehr antworten und fertig

Verfasst: 27. Februar 2008 13:46
von RHBaum
Tipps kannst du doch gerne geben
aber
Benutzt qmake anstatt alles selbst in Visual Studio einzutragen! Alles andere ist sinnlos.
Iss halt bissi an der Praxis vorbei

leider !
Ciao ...
Verfasst: 27. Februar 2008 13:49
von Christian81
RHBaum hat geschrieben:Tipps kannst du doch gerne geben
aber
Benutzt qmake anstatt alles selbst in Visual Studio einzutragen! Alles andere ist sinnlos.
Iss halt bissi an der Praxis vorbei

leider !
Ciao ...
Eben nicht - er ist ein Anfänger, gibt irgendwo ein Zeichen falsch ein und bekommt die sinnlostesten msvc Fehlermeldungen - was ist da besser als erstmal qmake zu benutzen und zu verstehen was moc, uic und co überhaupt machen
bevor er sich mit den Parametern rumschalgen muss??