Czy mimo to należy uzyskać ścieżkę stylu okna do katalogu zawierającego .pro
lub przekonwertować to, co jest przechowywane w _PRO_FILE_PWD_
na ścieżkę stylu systemu Windows?Konwertuj uniksową ścieżkę do okien w QMake Script
Mam problem ze zmienną _PRO_FILE_PWD_
w QMake gdzie zwraca ścieżkę stylu UNIX w systemie Windows.
np c:/foo/bar
zamiast c:\foo\bar
to okazuje się problem, gdy ścieżka jest używany jako część etapu po łącza.
QMAKE_POST_LINK += copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll $${_PRO_FILE_PWD_}/bin/;
używam plik .pro
utworzyć projekt Visual Studio i widzę, że gdybym ręcznie zmienić ukośniki kopii ukośniki w VS, że wszystko jest w porządku kopiowane bez żadnych błędów.
Otrzymuję następujący błąd w Visual Studio, jeśli nie poprawię ścieżki.
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.
Rozwiązanie
rozwiązanie bardzo proste dzięki Roku dodając uciekły cudzysłowie ścieżki używając/znaków.
MAKE_POST_LINK +=
copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll \"$${_PRO_FILE_PWD_}/bin/\";
Uwaga: w celu dodania wielu poleceń kopiowania należy je rozdzielić za pomocą znaków ampersand, a średnik nie działa.
np.
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/\";
Czy na pewno postać/jest problem? Działa prawie wszędzie w systemie Windows. Czy skopiowałeś-wkleiłeś wiersz kopiowania do wiersza polecenia i wypróbowałeś go tam? Może ostatnie; być problemem? –
@Roku Właśnie próbowałem w wierszu polecenia .. Nie działa z/tylko \. ; jest tam, ponieważ mam kilka poleceń kopiowania. Próbowałem bez ... – volting