Qt 4.8 - VisualStudio EXPRESS 2010

Alles zu Entwicklungsumgebungen und Editoren für Qt
Antworten
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Qt 4.8 - VisualStudio EXPRESS 2010

Beitrag von Tilman Räger »

Hallo,

nachdem ich mein Programm einigermassen mit QtCreator und dem MSVC zum Laufen bekommen habe, benötige ich nun einmal den Debugger um einige Probleme zu klären. Nur, wenn ich versuche das Programm mit dem VisualStudio zu öffnen - findet er keine Projektdateien. Wie kann ich das ganze vernünftig miteinander verheiraten?

meine Erste Idee mit qmake -tp vc (der qmake-Dokumentation entnommen) die entsprechenden Projektdateien zu generieren schlug fehl - von der DOS-Box aus findet er qmake nicht. Welche Umgebungsvariablen (QTDIR, ...) muss ich setzen (und ggf. wie) um die Qt-Tools von der Shell aus aufzurufen?

oder gibt es eine weitere Möglichkeit die beiden Umgebungen zusammenzubringen? Vielleicht den MS Debugger in QtCreator zu integrieren?

Und noch eine Frage <MEGAPEINLICH> wie setze ich in diesem verdammten Windows7 Umgebungsvariablen ? </MEGAPEINLICH> :oops: - ich entwickle seit 7 Jahren praktisch nur noch auf Linux :-)

Gruss & Danke für alle (ernstgemeinten) Antworten

Tilman (Räger)
brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: Qt 4.8 - VisualStudio EXPRESS 2010

Beitrag von brax »

meine Erste Idee mit qmake -tp vc (der qmake-Dokumentation entnommen) die entsprechenden Projektdateien zu generieren schlug fehl - von der DOS-Box aus findet er qmake nicht. Welche Umgebungsvariablen (QTDIR, ...) muss ich setzen (und ggf. wie) um die Qt-Tools von der Shell aus aufzurufen?
Das Qt bin Verzeichnis muss im PATH sein (ist unter Linux doch auch so). Wenn Du Deine Projekte (also die pro files) in Unterverzeichnissen hast, brauchst Du auch das Kommandozeilenargument -r beim qmake, also: qmake -r -tp vc
Umgebungsvariablen in Windows: Entweder auf der Konsole (muss als Admin gestartet werden) mit "setx /M VARIABLE wert" oder rechts click auf Computer -> Properties -> Advanced system settings -> Environment variables. Du brauchst aber, wie gesagt keine weiter zu setzen außer, dass das bin Verzeichnis von Qt in der PATH Variable auftauchen muss.

Ob man den VS Debugger in den Creator kriegt kann ich Dir nicht sagen. Aber dann hab ich doch noch eine (tatsächlich ernstgemeinte) Frage. Warum überhaupt den QtCreator benutzen, wenn Du eh den MSVC Compiler (und Debugger) nutzen willst? Findest Du den Creator einfach schöner?
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Re: Qt 4.8 - VisualStudio EXPRESS 2010

Beitrag von Tilman Räger »

Das mit dem Path ist eigentlich klar (da greift allenfalls das Problem, das ich die Umgebungsvariablen in Win7 noch nicht gefunden habe :-(

Aber soweit ich mich von Qt 4.1.4 noch erinnere, benötigte man noch ein paar Umgebungsvariablen zusätzlich die zu setzen waren (QTDIR und irgendwas, was angab, wofür man baut (VC++, o.ä.) makespec?)
Zur Frage Qt Creator oder VS:

eigentlich nehme ich lieber den Creator, weil ich den unter Linux auch verwende. Ausserdem hab ich keine Ahnung, wie ich Qt in Visual Studio Express integriert bekomme, das die ganzen Aufrufe von moc und qmake etc. automatisch mitablaufen. Und nur für das eine Projekt mir jetzt für 500€ die Pro-Variante besorgen, soviel wirft das Projekt auch nicht ab :-)

Gruss
Tilman (Räger)
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Re: Qt 4.8 - VisualStudio EXPRESS 2010

Beitrag von Tilman Räger »

Hallo,

Danke, der Tip hat erst einmal geholfen. MOC etc. baut. Jetzt muss ich mir noch mit VisualStudio anfreunden (Wird wohl eine längere Angelegenheit werden :roll: )
jetzt frag ich mich nur noch, wozu das Qt-Plugin gut ist :-)

Tilman (Räger)
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Qt 4.8 - VisualStudio EXPRESS 2010

Beitrag von Christian81 »

Die Express-Versionen von Visual Studio unterstützen keine Plugins
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
brax
Beiträge: 208
Registriert: 11. Mai 2010 11:22

Re: Qt 4.8 - VisualStudio EXPRESS 2010

Beitrag von brax »

Ok, wo Du die Umgebungsvariablen findest, habe ich ja im letzten Post geschrieben.

Die andere noch relevante Variable ist QMAKESPEC. Diese sollte für vs2012 auf win32-msvc2010 gesetzt sein. Die QTDIR Variabel wird (glaube ich) inzwischen nicht mehr gebraucht. Ich habe sie gesetzt, damit ich schnell zwischen verschiedenen Qt-Versionen umstellen kann. M.E. sollten aber weder QMAKESPEC noch QTDIR wirklich absolut notwendig sein (aber ich glaube ohne QMAKESPEC werden VS-Projekte für ne ältere Version erstellt, die dann erst konvertiert werden müssen beim ersten öffnen. ist also schon besser...) Bau Dir doch einfach eine batch-Datei, in der Du das alles setzt:

Code: Alles auswählen

@echo off
set QTVER=4.8.3
set OSTYPE=x86
set QMAKESPEC=win32-msvc2010
set QTDIR=c:\opt\%OSTYPE%\qt\%QTVER%
set PATH=%PATH%;%QTDIR%\bin
cmd.exe
Ist eine stark abgespeckte Variante meines entsprechended Scriptes. Musst natürlich den Pfad von Qt anpassen.

Ich weiß nicht, ob die 2010 Express Version auch die vcvarsall.bat Datei und die entsprechenden anderen Dateien dabei hat (die wären [wenn es an die Default-Stelle installiert ist] unter C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat, bzw. C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat und C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\vcvars64.bat). Damit würdest auch gleich noch den Compiler und Linker auf die Konsole bekommen. Das Skript sähe dann etwa so aus:

Code: Alles auswählen

@echo off
set VCDIR=C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC
set QTVER=4.8.3
set QMAKESPEC=win32-msvc2010
set OSTYPE=x86
::um 64Bit zu bauen hier x64 einstellen (wenn Qt denn auch für 64Bit da ist)
set QTDIR=c:\opt\%OSTYPE%\qt\%QTVER%
set PATH=%PATH%;%QTDIR%\bin
call %VCDIR%\vcvarsall.bat %OSTYPE%
cmd.exe
Ja, Qt bekommst Du nicht komplett in VS Express integriert (weil keine Plugins installiert werden können). Aber nur das qmake ist manuell nötig, um die VS Projektdatei zu erzeugen, gemoc'ed wird dann automatisch. So oft verändert man ja auch das pro file, dass man ständig qmake ausführen muss.
Ich habe übrigens (obwohl ich die Vollversion vom VS habe) das Qt-Plugin auch nicht installiert, weil es relativ häufig den Debugger zum Absturz bringt (zumindest wenn Du eine entsprechend große Solution und entsprechend große Projekte hast), arbeite aber zu 100% mit dem VS (so wie alle Windowsentwickler bei uns - die Linuxer benutzen den QtCreator und schauen immer sehr neidisch, wenn sie mal mit an ner Windows-Kiste sitzen ;) ).

[EDIT]: Das Plugin erlaubt Dir beim Debuggen z.B. in die Qt-Container Klassen (QList, QSet etc.) reinzugucken. Außerdem kannst Du auch direkt pro-Dateien öffnen und exportieren (das manuelle qmake entfällt also).
Tilman Räger
Beiträge: 189
Registriert: 6. Juni 2007 15:23
Wohnort: Göttingen

Re: Qt 4.8 - VisualStudio EXPRESS 2010

Beitrag von Tilman Räger »

Hallo,

@Christian81:

Aus eben diesem Grund (keine Plugins bei VS Express) überlegte ich ja die Prof. Version - was mir aber, wie gesagt, für ein Projekt zu teuer ist.

@brax
Danke erst einmal für die Tips. Werde ich mal ausprobieren, damit die Shell auch Qt & VS gleichzeitig kann. momentan ist das ein klein wenig nervig.

Zugegeben, VS hat schon einige Vorteile, speziell beim Debuggen, aber irgendwie habe ich bei WinzigWeich immer das Gefühl, das die an jeden Standard mit der Vorgabe rangehen 'der muss doch kaputt zu kriegen sein'. Und wenn das nicht klappt, erfindet man halt was andres (-> C#) . Jedenfalls habe ich die Erfahrung gemacht, das alles, was sie anfassen, hinterher nicht mehr wirklich kompatibel zum Standard und zu anderen Programmen ist. Da bleibe ich dann doch lieber bei Linux :-)

Gruss
Tilman

PS: Es mag ja sein, dass mancher Linuxer bei VS leuchtende Augen bekommt, was den Debugger etc. angeht. - Anderstherum passiert es allerdings auch, wenn ein (nicht allzu eingefleischter) Windows-Fan die Linux-tools (z.B. grep, sed, awk, ....) zu sehen bekommt. Bei Fanatikern ist natürlich auf beiden Seiten nichts zu machen :-)
Antworten