Qt Creator 单元测试项目

4
在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\"

SRCDIRQT_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上。

1个回答

8
< p >由testlib添加的定义在testlib_defines.prf中,该文件位于:

C:\Qt\Qt5.0.2\5.0.2\msvc2010\mkspecs\features

更改...

DEFINES += QT_TESTCASE_BUILDDIR=\\\"$$OUT_PWD\\\"

...to...

DEFINES += QT_TESTCASE_BUILDDIR=\"$$OUT_PWD\"

另一部分很容易。对于SRCDIR的额外反斜杠来自于.pro文件本身。更改...
DEFINES += SRCDIR=\\\"$$PWD/\\\"

...to...

DEFINES += SRCDIR=\"$$PWD/\"

每次安装新版本的Qt,您都需要编辑.prf文件,但比每次运行qmake时都要编辑makefile更好。

这可能很明显,但是一旦您更改了.prf文件,您必须明确地再次运行qmake,以便QtCreator看到更新的QT_TESTCASE_BUILDDIR。 - yagni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接