是否有办法将windows样式路径获取到包含.pro
的目录或将_PRO_FILE_PWD_
中存储的内容转换为Windows样式路径?将Unix路径转换为QMake脚本中的窗口
我有在QMAKE的_PRO_FILE_PWD_
变量它返回Windows上的UNIX风格路径的问题。
e.g c:/foo/bar
代替c:\foo\bar
这被证明是在路径被用作一个链接后步骤的一部分的问题。
QMAKE_POST_LINK += copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll $${_PRO_FILE_PWD_}/bin/;
我用.pro
文件创建一个Visual Studio项目,我可以看到,如果我手动更改斜线向后斜杠在VS一切都没有任何错误复制的罚款。
如果我不纠正路径,我在Visual Studio中出现以下错误。
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.
解决方案
非常简单的解决方案由于Roku公司通过使用/字符添加路径周围逃脱双引号。
MAKE_POST_LINK +=
copy /y $$[QT_INSTALL_BINS]\\QtCore4.dll \"$${_PRO_FILE_PWD_}/bin/\";
有关添加多个复制命令的注意事项,必须使用分号分隔它们,分号不起作用。
例如
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/\";
确定的字符/是什么问题?它在Windows中几乎可以在任何地方使用你是否将复制行复制粘贴到命令提示符并在那里尝试过?最后一个;是问题吗? – 2013-02-18 16:06:33
@Roku我刚刚尝试过命令提示符。它不适用于/ only \。 The;是因为我有几个副本命令..我已经尝试没有... – volting 2013-02-18 17:11:45