4

在 Qt Creator 中,当我创建一个新的单元测试项目时,如果项目的完整路径包含空格,它将不会成功构建。

我已将错误跟踪到 qmake 生成的 makefile。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显然稍后添加了自己的定义。

我在用:

  • 视觉工作室 2010 SP 1
  • Qt 5.0.2
  • Qt 创作者 2.7.0
  • Windows 7的

摆脱反斜杠的最简单方法是什么?

编辑:这也发生在 OSX 上。

4

1 回答 1

8

添加的定义testlib是在testlib_defines.prf其中是:

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

改变...

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

...到...

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

另一部分很容易。额外的反斜杠SRCDIR来自.pro文件本身。改变...

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

...到...

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

每次安装新版本的 Qt 时,都必须编辑该.prf文件,但这比每次运行 qmake 时都必须编辑 makefile 要好。

于 2013-05-17T14:30:27.790 回答