在Qt Creator中,如果新建的单元测试项目路径中包含空格,则无法成功编译。我已经找到了这个问题的原因:由qmake生成的Makefile文件在顶部附近包含一行类似于以下内容的代码:
DEFINES = -DUNICODE -DWIN32 -DSRCDIR=\"C:/Users/Smith/Qt Projects/Unit_Tests/\" -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_TESTLIB_LIB -DQT_CORE_LIB -DQT_TESTCASE_BUILDDIR=\"C:/Users/Smith/Qt Projects/Debug_Unit_Tests\"
SRCDIR
和QT_TESTCASE_BUILDDIR
的值中的引号是用反斜杠转义的。如果我从Makefile.Debug
中删除反斜杠,则项目将成功构建。
显然,我不想每次都手动删除反斜杠。我也想避免自定义构建步骤来删除反斜杠。由于qmake有很多选项,我希望在.pro
文件中有一些可以解决这个问题的选项。
我尝试了类似于DEFINES -= QT_TESTCASE_BUILDDIR
的东西。但是这不起作用,因为QT_TESTCASE_BUILDDIR
还没有被定义。 testlib
显然稍后添加了它自己的定义。
我正在使用:
- Visual Studio 2010 SP 1
- Qt 5.0.2
- Qt Creator 2.7.0
- Windows 7
最简单的方法是摆脱反斜杠是什么?
编辑: 这也发生在OSX上。