Esiste comunque un modo per ottenere il percorso di stile di Windows nella directory contenente lo .pro
o convertire ciò che viene memorizzato in _PRO_FILE_PWD_
in un percorso di stile Windows?Converti percorso Unix in Windows in QMake Script
Ho un problema con la variabile _PRO_FILE_PWD_
in Qmake dove restituisce un percorso in stile Unix su Windows.
es c:/foo/bar
anziché c:\foo\bar
Questo si sta rivelando un problema in cui il percorso viene utilizzato come parte di una fase di post collegamento.
QMAKE_POST_LINK += copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll $${_PRO_FILE_PWD_}/bin/;
Io uso il file .pro
per creare un progetto di Visual Studio e posso vedere che se cambio manualmente la slash per eseguire tagli in VS che tutto viene copiato bene senza errori.
Ottengo il seguente errore in Visual Studio se non corrego il percorso.
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.
Soluzione
soluzione molto semplice grazie al Roku con l'aggiunta di virgolette doppie sfuggiti tutto il percorso utilizzando/caratteri.
MAKE_POST_LINK +=
copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll \"$${_PRO_FILE_PWD_}/bin/\";
Nota per addingi copia più comandi è necessario separati loro con la e commerciale del punto e virgola non funziona.
ad es.
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/\";
Sei sicuro che il carattere/è il problema? Funziona quasi ovunque in Windows. Hai copiato la linea di copia sul prompt dei comandi e l'hai provato? Potrebbe l'ultimo; essere il problema? –
@Roku Ho appena provato al prompt dei comandi. Non funziona con/solo \. Il ; è lì perché ho alcuni comandi di copia .. Ho provato senza ... – volting