Seite 1 von 1
QMake: VS-.Net-".sln"-Dateien generieren lassen?
Verfasst: 3. Januar 2006 10:13
von aportale
Hallo, und ein frohes Neues
Ich baue mehrere statische Libs mit entsprechenden .pro-Files. Mittels QMake lasse ich dafür aus den .pro-Dateien die passenden .vcproj-Dateien generieren. Das klappt auf Anhieb gut.
Nun hängt meine Applikation von all diesen Libs ab. Deshalb brauche ich eine Solution (.sln), in der die ganzen Projekte und deren Abhängigkeiten ("Dependencies") untereinander definiert ist.
Frage: Kann ich mit QMake eine .sln-Datei mit Dependencies erstellen?
Viele Grüße,
Alessandro
Verfasst: 3. Januar 2006 11:31
von Christian81
qmake einfach auf das pro-File mit den ganzen subprojects laufen lassen (die mit template=subdirs).
Siehe auch die Qt-Sourcen als Beispiel
Verfasst: 3. Januar 2006 16:37
von aportale
Hi, danke für die Antwort.

ch muss erstmal zugeben, dass ich totaler qmake-Newbie bin). Mit dem normalen "subdirs" template bekomme ich nur (N)Makefiles gebacken, aber keine Visual Studio Solutions. Nun habe ich
hier von dem "vcsubdirs"-template erfahren. Allerdings liefert mir das nur "leere" Solutions, also welche ohne Projekte. Hmm...
In den QT-Sourcen gibt es im Verzeichnis "examples" und weiter drunter, viele .sln-Dateien. Ich frage mich gerade, ob diese mit qmake generiert wurden, und wenn ja: wie wurde qmake da aufgerufen?.
QT-Version: 4.1
OS: Windows XP Home
Compiler: Visual Studio .Net 2003
Vielen Dank,
Alessandro
Verfasst: 3. Januar 2006 17:48
von Christian81
http://doc.trolltech.com/4.0/qmake-running.html#options
-> '-tp vc'.
Wenn normale Makefiles für template=subdirs korrekt erstellt werden, sollte es auch für .sln funktionieren.
siehe am Beispiel assistant:
Code: Alles auswählen
D:\qt-3.3\qt-4-msvc.net\tools>cd assistant
D:\qt-3.3\qt-4-msvc.net\tools\assistant>qmake -tp vc
D:\qt-3.3\qt-4-msvc.net\tools\assistant>cd ..
D:\qt-3.3\qt-4-msvc.net\tools>qmake -tp vc
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/assistant/lib\QtAssistantClient.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/linguist/linguist\linguist.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/linguist/lrelease\lrelease.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/linguist/lupdate\lupdate.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/linguist/qm2ts\qm2ts.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/porting/src\qt3to4.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/qtestlib/src\QtTest_debug.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/qtestlib/updater\updater.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/designer/src/uitools\QtUiToolsd.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/designer/src/lib\QtDesignerd.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/designer/src/components/lib\QtDesignerComponentsd.vcproj'
WARNING: Ignored (not found) 'D:/qt-3.3/qt-4-msvc.net/tools/designer/src/plugins/widgets\qt3supportwidgetsd.vcproj'
Die Warnings kommen nur weil ich in diesen Verzeichnissen keine .vcproj erstellt habe.
Verfasst: 3. Januar 2006 17:59
von aportale
Klasse! Danke, das ist es.
Den "-tp" werde ich mir ordentlich merken, denn das macht das ganze sogar noch viel leichter cross plattform zu handlen.
Dank & Gruß,
Alessandro
Verfasst: 5. Januar 2006 15:45
von aportale
Hallo,
sorry, dass ich so spät nochmal nachhake... ist es möglich auch die gegenseitigen Dependencies der Libraries in der .sln-Datei zu generieren?
Meine Experimente sind bisher fehlgeschlagen. Ich hätte erwartet, dass ich sowas wie "REQUIRES += <lib-pfad>" oder ähnliches in eines der library-.pro-Files schreiben würde, und dann alles klappt.
Nochmals Danke und Viele Grüße,
Alessandro
Verfasst: 5. Januar 2006 16:04
von Christian81
Dependencies sollten eigentlich korrekt aufgelöst werden so wie qmake es auch mitbekommt. Mehr kann man da nicht machen, sollte aber reichen,
Werde das evtl. mal ausprobieren ob es mit 4.1 noch funktioniert, kann mir aber nicht vorstellen warum es nicht der Fall sein sollte.
Verfasst: 5. Januar 2006 16:24
von aportale
Christian81 hat geschrieben:Werde das evtl. mal ausprobieren ob es mit 4.1 noch funktioniert, kann mir aber nicht vorstellen warum es nicht der Fall sein sollte.
Danke, bin mal gespannt

Obwohl ich annehme, dass nicht Version 4.1 Schuld ist, sondern ich.
Ich habe systematisch folgende Variablen ausprobiert:
- TARGETDEPS
PRE_TARGETDEPS
REQUIRES
Ihnen habe ich jeweils versuchsweise zugewiesen (bzw. addiert):
- <.pro-Datei>
<.pro-Verzeichnis>
<.pro-Verzeichnis>/<.pro-Datei>
<.lib-Datei>
Viele Grüße,
Alessandro
Verfasst: 5. Januar 2006 17:33
von Christian81
Ich habe wohl Schuld. Melde mich wenn es korrigiert ist. Kann aber ein paar Tage dauern.
Verfasst: 6. Januar 2006 14:09
von aportale
Christian81 hat geschrieben:Ich habe wohl Schuld. Melde mich wenn es korrigiert ist. Kann aber ein paar Tage dauern.
Also mit der kommerziellen QT 4.1-version klappt es (auch) nicht auf die Weise, wie ich das Ganze angehe.
Gruß,
Alessandro
Verfasst: 6. Januar 2006 16:36
von aportale
Und dass es noch nicht klappt hat einen Grund: Das Feature gibt es noch nicht. Aber es ist schon in der Pipeline:
http://www.trolltech.com/developer/task ... y&id=79706
Jedenfalls danke für die Antworten,
viele Grüße,
Alessandro