Qt "portabel" übersetzen?

Verschiedenes zu Qt
Winni
Beiträge: 7
Registriert: 31. August 2007 21:32

Qt "portabel" übersetzen?

Beitrag von Winni »

Hi,

ich habe mal eine kurze, grundsätzliche Frage:
Bisher habe ich Qt immer so übersetzt, dass es irgendwo auf C:\qt_version gelandet ist. Hat mir persönlich auch gereicht .
Nun soll ich Qt aber nach Möglichkeit so übersetzen, dass es portabel ist, sprich, dass man den gesamten Qt-Ordner auch auf ein anderes Laufwerk verschieben kann. Wenn ich das auf meine bisherige Variante mache, dann kann man ja die Quellcode-Dateien / Bibliotheken etc. nutzen, die Sachen wie die Visual Studio-Projekdateien enthalten aber ja dann den absoluten Pfad zu c:\qt_version und können damit nicht mehr genutzt werden. Auch die Hilfe (assistant) will nach einem Verschieben des Ordners nicht mehr funktionieren.

Kann man das beim Übersetzen von Qt irgendwie beeinflussen, dass die Pfade nicht absolut eingetragen werden?

Vielen Dank vorab für evtl. Antworten.

Gruß

Winni
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

hm
du könntest theoretisch alle absoluten pfadangaben mit

Code: Alles auswählen

QDir::currentPath();
erstetzen. Dadurch wäre das Problem mit den Pfaden gelöst. Und für die Umgebung: Wenn man VS auf dem Rechner hat, wofür portablität? für mingw
würde sich das lohnen.
Sonst müsstest du einfach die VS aus einer Konsole mit veränderten Umgebungsvariablen starten und das müsste dan funktionieren. denke ich...
gerome69
Beiträge: 188
Registriert: 28. April 2006 22:50
Wohnort: Berlin
Kontaktdaten:

Re: Qt "portabel" übersetzen?

Beitrag von gerome69 »

Winni hat geschrieben:Hi,

ich habe mal eine kurze, grundsätzliche Frage:
Bisher habe ich Qt immer so übersetzt, dass es irgendwo auf C:\qt_version gelandet ist. Hat mir persönlich auch gereicht .
Nun soll ich Qt aber nach Möglichkeit so übersetzen, dass es portabel ist, sprich, dass man den gesamten Qt-Ordner auch auf ein anderes Laufwerk verschieben kann. Wenn ich das auf meine bisherige Variante mache, dann kann man ja die Quellcode-Dateien / Bibliotheken etc. nutzen, die Sachen wie die Visual Studio-Projekdateien enthalten aber ja dann den absoluten Pfad zu c:\qt_version Winni
Ich denke, das wird nicht wirklich funktionieren, weil zB in qmake der Installationspfad fest einkompiliert ist, zumindest bei meinem selbst kompilierten Qt ist das so.

Außerdem, was heißt portabel. Der Aufruf "qmake" in deinem Projektordner führt doch eh dazu, daß die richtigen Makefiles erstellt werden und das ganz wieder kompilierbar ist. evtl. noch die QMAKE_SPEC anpassen.

Gruß, Gérôme
Winni
Beiträge: 7
Registriert: 31. August 2007 21:32

Beitrag von Winni »

Es geht wohl darum (so wurde mir gesagt), dass jeder Benutzer sich den Qt-Ordner dahin schieben kann, wo er will und dennoch bspw. alle Beispiele direkt kompilieren kann, ohne das er vorher irgendetwas anderes machen muß, als die jeweilige .sln-Datei zu öffnen. :D

Das scheitert prinzipiell wohl daran, dass der Installationspfad fest vorgegeben ist, sobald "configure" ausgeführt wird.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Stichwort: qt.conf
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Winni
Beiträge: 7
Registriert: 31. August 2007 21:32

Beitrag von Winni »

Hey, danke, das ist ja schonmal was.
Habe ich das richtig verstanden, dass man damit die Pfadangaben dann nach der Übersetzung "umbiegen" kann, dass also statt der festen Installationspfade die Pfade aus der Datei qt.conf benutzt werden?
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

also bei meiner QT integration in VS gibts menupunkte womit ich die "QTversion" umstellen kann ....

Dabei liest er umgebungsvariablen aus, und bietet daraus otionen an, dann setzt er wieder ne umgebungsvariable um ....

wenn ich irgendwas von der QT verweisse dann prinzipiell ueber $(QTDIR)
fuer die integration gibts dann halt noch QT4DIR und QT3DIR

also wenn man die anpasst, findet der eigentlich auch alles ....

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

Beitrag von Christian81 »

RHBaum: mach dich bitte schlau bevor Du was postest. qmake/Qt4 und alles andere richtet sich auf keinen Fall mehr nach QTDIR sondern verwendet nur noch hartcodierte Pfade und die qt.conf

@Winni: Ja, das ist der Sinn.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

Also ne qt.conf hab ich auch

Ich hab QT 4.2.1 kommerziell + VS 2005 ohne Service pack.

Die Pfade sind definitiv per $(QTDIR) eingebunden.
und beim builden wird moccer und der ressourcen kompiler aufgerufen, aber ned das qmake. builden tu ich "klassisch" mit nmake

So siehts zumindest hier aus ....
Iss das nu von der QT Version oder von der Lizens abhaengig ?

Wenns bei neueren versionen ned mehr so ist dann ups, tschuldigung.

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

Beitrag von Christian81 »

Verschieb mal dein Qt-Verzeichnis und mach dann ein 'qmake -v' und Du wirst sehen dass es noch die alten Pfade ausgibt:

Code: Alles auswählen

C:\tmp>qt-4.2.1\bin\qmake -v
QMake version 2.01a
Using Qt version 4.2.1 in C:\tmp\qt-4.2.1\lib

C:\tmp>ren qt-4.2.1 qt-4.2.1-2

C:\tmp>qt-4.2.1-2\bin\qmake -v
QMake version 2.01a
Using Qt version 4.2.1 in C:\tmp\qt-4.2.1\lib
D.h. QTDIR wird zwar verwendet, aber nur um die qt-tools zu finden. Intern zeigen aber die Pfade noch auf die Install-Dir
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

ich bezweifle nicht, das qmake die qt.conf verwendet.
Nur wir verwenden qmake nich. Bei unseren Projekten / unser Configuration werden auch keine .pro files verwendet, sondern die muss ich seperat in nen .vcproj umwandeln, dann kann ich sie auch mit nmake und dem VS Studio uebersetzen. und in dem vcproj stehen die Verweise auf die QT Dirs eben mit $(QTDIR) drinne.

Auch wenn ich mit dem QT Assistenten der sich in VC 2005 einklinkt, nen neues QT project erstelle, wird keine .pro datei erzeugt.

Sondern alles auf .vcproj basis. und an qt tools wird nur der moccer und der ressourcencompiler verwendet, die werden als prebuild-stepp bei jeder QT klasse / qt ressource definiert.
Ansonsten laeuft reines Microsoft VC, also nmake und so ....

Bei der opensource version unter windows kann das durchaus total anders sein ....

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

Beitrag von Christian81 »

Du scheinst nicht zu begreifen was der Poster überhaupt will...
Nun soll ich Qt aber nach Möglichkeit so übersetzen, dass es portabel ist, sprich, dass man den gesamten Qt-Ordner auch auf ein anderes Laufwerk verschieben kann.
Und das geht nunmal nur so wie ich es gesagt habe und hat nichts mit der Erzeugung von .vcproj - Dateien zu tun!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

klar hats was damit zu tun :-)

weil bei mir (also bei QT enterprice 4.2.1 + QT migrationskit) kannst du nach der installation die qt.conf aendern wie lustig bist .... er (der VC compiler) wird es ignorieren.

Ich muss (darf) in der VS Studio Oberflaeche das verzeichniss zur QT angeben oder die wie bisher ueber die QTDir geschichte setzen ...

Das wollt ich nur damit ausdruecken ....
Also isses wahrscheinlich abhaengig welche version er hat und welche lizenz (Opensource / commerziell) bzw ob und was fuer qt tools er nutzt.

Du gehst einfach davon aus, das jeder qmake verwendet, und das ist definitiv nicht der fall.

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

Beitrag von Christian81 »

Es hat nichts mit qmake zu tun und QTDIR ist auch total egal. Deine App setzt wohl die Pfade in den Qt-Libs direkt. Kannst die Libs ja mal durchsuchen...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Winni
Beiträge: 7
Registriert: 31. August 2007 21:32

Beitrag von Winni »

Ich nutze die kommerzielle Version 4.3.1, das zur Info :wink:

Mein Problem ist einfach Folgendes:
Wenn ich QT gemäß der beiliegenden Anleitung übersetze (kurz: entpacken, configure (mit win32_msvc2005), nmake, fertig), dann werden in sämtlichen VS-Projektdateien der Beispiele sämtliche Pfade zu rcc, uic etc. fest eingetragen, was dazu führt, dass jeder Programmierer das QT-Verzeichnis genau an dem Ort liegen haben muß, wo ich es übersetzt habe, oder er muß halt die Projektdateien entsprechend ändern, sollte er sich mal eben schnell eins der Beispiele übersetzen wollen :?

Die qt.conf-Datei behebt zumindest dieses Problem nicht, wenn ich das richtig verstanden habe, dafür aber das mit der Hilfe (assistant), was ich persönlich als wichtiger empfinde.

Wenn noch jemand einen Vorschlag wegen der obigen Problematik hat, dann kann er den gerne noch mitteilen.

Allen anderen nochmals vielen Dank für die bisherige Hilfe.

Gruß

Winni
Antworten