Gibt es trotzdem, um den Windows-Stil Pfad zu dem Verzeichnis, das die .pro
enthält oder konvertieren, was in _PRO_FILE_PWD_
in einem Windows-Stil Pfad gespeichert ist?Convert Unix Pfad zu Windows in QMake Skript
Ich habe ein Problem mit der _PRO_FILE_PWD_
Variable in Qmake, wo es einen Weg Unix-Stil auf Windows zurückgibt.
z.B c:/foo/bar
anstelle von c:\foo\bar
Dies erweist sich ein Problem, wo der Pfad als Teil eines Postverbindungsschritt verwendet wird.
QMAKE_POST_LINK += copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll $${_PRO_FILE_PWD_}/bin/;
Ich verwende die .pro
Datei ein Visual Studio-Projekt zu erstellen, und das kann ich sehen, ob ich die Vorwärts manuell ändern Schrägstriche Schrägstriche in VS zu sichern, dass alles ohne Fehler fein kopiert wird.
Ich bekomme den folgenden Fehler in Visual Studio, wenn ich den Pfad nicht korrigieren.
PostBuildEvent:
1> Description: copy /y C:\Qt\4.8.3\bin\QtCore4.dll E:/foo/build/win32//bin//;
1> The syntax of the command is incorrect.
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: The command "copy /y C:\Qt\4.8.3\bin\QtCore4.dll E:/foo/build/win32/bin/;
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :VCEnd" exited with code 1.
Lösung
Sehr einfache Lösung dank Roku mit/Zeichen rund um den Weg entkommen doppelte Anführungszeichen hinzufügen.
Hinweis zum Hinzufügen mehrerer Kopierbefehle müssen Sie sie mit dem kaufmännischen Und trennen, das Semikolon funktioniert nicht.
z.B.
MAKE_POST_LINK +=
copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll \"$${_PRO_FILE_PWD_}/bin/\" &
MAKE_POST_LINK +=
copy /y $$[QT_INSTALL_BINS]\\QtGui4.dll \"$${_PRO_FILE_PWD_}/bin/\";
Sind Sie sicher, dass das Zeichen/ist das Problem? Es funktioniert fast überall in Windows. Haben Sie die Kopierzeile an die Eingabeaufforderung kopiert und dort versucht? Könnte das Letzte sein; sei das Problem? –
@Roku Ich habe gerade an der Eingabeaufforderung versucht .. Es funktioniert nicht mit/nur \. Das ; gibt es da habe ich ein paar kopierbefehle .. ich habe es versucht ohne ... – volting