Hallo zusammen,
ich arbeite mit Qt 5.4 und dem Qt Creator 3.3.0 unter Win7. In meiner Projektdatei möchte ich den lokalen Pfad der Qt-Dlls in eine separate Datei schreiben, um mit Inno Setup ein Softwarepaket zu schnüren. Das klappt an sich auch.
in .pro-Datei:
DLL_DIR = $$dirname(QMAKE_QMAKE) # speichert Pfad der qmake.exe, in dem sich auch die meisten Qt-Dlls befinden
DLL_DIR_ISS = "$$LITERAL_HASH define DllDir \"$$DLL_DIR\"" # erzeugt ein # define ...
write_file(./install/version.iss,DLL_DIR_ISS,append) # schreibt das # define ... in eine .iss Datei für Inno Setup
Der ausgegebene Pfad wird allerdings mit / angegeben, ich möchte ihn aber zuvor in \ wandeln, da alle Pfadangaben in der .iss-Datei mit \ sind. Dafür habe ich leider keine passende qmake-Funktion gefunden.
replace(DLL_DIR,/,\) # führt zu Fehlermeldung: Missing closing parenthesis in function call
replace(DLL_DIR,/,\\) # führt zu Fehlermeldung: 'replace' is not a recognized test function.
replace(DLL_DIR,/,"\\") # führt zu Fehlermeldung: 'replace' is not a recognized test function.
replace(DLL_DIR,/,\"\\\") # führt zu Fehlermeldung: 'replace' is not a recognized test function.
Auch mit vorangestelltem $$ vor DLL_DIR funktioniert es nicht oder mit dem / in "/" gekapselt. Kann mir da vielleicht jemand auf die Sprünge helfen?
Viele Grüße
Matthias
[gelöst] Slash/Backslash ersetzen mit qmake built-in Func
[gelöst] Slash/Backslash ersetzen mit qmake built-in Func
Zuletzt geändert von matthiasw am 18. Mai 2015 08:25, insgesamt 1-mal geändert.
Re: Slash/Backslash ersetzen mit qmake built-in Funktion
Ich habe gerade noch ein wenig herumprobiert.
DLL_DIR = $$replace(DLL_DIR,/,\\) # funktioniert endlich!
Ich habe immer übersehen, dass replace die neue Variable in einem Rückgabewert speichert, der bei meinen bisherigen Aufrufen immer gefehlt hat...
Viele Grüße
Matthias
DLL_DIR = $$replace(DLL_DIR,/,\\) # funktioniert endlich!
Ich habe immer übersehen, dass replace die neue Variable in einem Rückgabewert speichert, der bei meinen bisherigen Aufrufen immer gefehlt hat...
Viele Grüße
Matthias