Có cách nào để lấy đường dẫn kiểu cửa sổ vào thư mục chứa .pro
hoặc chuyển đổi những gì được lưu trữ trong _PRO_FILE_PWD_
sang đường dẫn kiểu Windows?Chuyển đổi đường dẫn Unix sang cửa sổ trong QMake Script
Tôi gặp sự cố với _PRO_FILE_PWD_
biến trong qmake nơi nó trả về một con đường unix phong cách trên cửa sổ.
ví dụ c:/foo/bar
thay vì c:\foo\bar
này được chứng minh một vấn đề mà con đường đang được sử dụng như một phần của một bước post link.
QMAKE_POST_LINK += copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll $${_PRO_FILE_PWD_}/bin/;
tôi sử dụng các tập tin .pro
để tạo ra một dự án Visual Studio và tôi có thể thấy rằng nếu tôi tự thay đổi các dấu gạch chéo để sao chéo trong VS rằng tất cả mọi thứ được sao chép tốt mà không có bất kỳ lỗi nào.
Tôi gặp lỗi sau trong Visual Studio nếu tôi không sửa đường dẫn.
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.
Giải pháp
Rất đơn giản giải pháp nhờ Roku bằng cách thêm dấu ngoặc kép trốn xung quanh con đường sử dụng/ký tự.
MAKE_POST_LINK +=
copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll \"$${_PRO_FILE_PWD_}/bin/\";
Lưu ý rằng việc thêm nhiều lệnh sao chép bạn phải tách chúng bằng ký hiệu và dấu chấm phẩy không hoạt động.
ví dụ:
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/\";
Bạn có chắc chắn nhân vật/là vấn đề? Nó hoạt động hầu như ở khắp mọi nơi trong Windows. Bạn đã sao chép-dán dòng sao chép vào dấu nhắc lệnh và thử nó ở đó? Có thể là người cuối cùng; là vấn đề? –
@Roku Tôi vừa thử trên dấu nhắc lệnh .. Nó không hoạt động với/only \. Các ; Có bởi vì tôi có một vài lệnh sao chép .. Tôi đã thử mà không có ... – volting