mjk*_*k99 4 qt unit-testing qt-creator qtestlib
在Qt Creator中,当我创建一个新的Unit Test项目时,如果项目的完整路径包含空格,它将无法成功构建.
我已经将错误跟踪到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\"
Run Code Online (Sandbox Code Playgroud)
SRCDIR和的值中的引号QT_TESTCASE_BUILDDIR用反斜杠转义.如果我从中删除反斜杠Makefile.Debug,那么项目将成功构建.
显然,我不希望每次都手动删除反斜杠.我还想避免一个删除反斜杠的自定义构建步骤.因为qmake有很多选项,所以我希望有一些东西可以放在.pro文件中来解决这个问题.
我试过类似的东西DEFINES -= QT_TESTCASE_BUILDDIR.然而,这不起作用,因为QT_TESTCASE_BUILDDIR尚未定义. testlib显然后来添加了自己的定义.
我在用:
什么是摆脱反斜杠最简单的方法?
编辑:这也发生在OSX上.
通过添加的定义testlib是testlib_defines.prf它是:
C:\Qt\Qt5.0.2\5.0.2\msvc2010\mkspecs\features
Run Code Online (Sandbox Code Playgroud)
更改...
DEFINES += QT_TESTCASE_BUILDDIR=\\\"$$OUT_PWD\\\"
Run Code Online (Sandbox Code Playgroud)
...至...
DEFINES += QT_TESTCASE_BUILDDIR=\"$$OUT_PWD\"
Run Code Online (Sandbox Code Playgroud)
另一部分很简单.额外的反斜杠SRCDIR来自.pro文件本身.更改...
DEFINES += SRCDIR=\\\"$$PWD/\\\"
Run Code Online (Sandbox Code Playgroud)
...至...
DEFINES += SRCDIR=\"$$PWD/\"
Run Code Online (Sandbox Code Playgroud)
每次安装新版本的Qt时,您都必须编辑该.prf文件,但这比每次运行qmake时编辑makefile要好.
| 归档时间: |
|
| 查看次数: |
2186 次 |
| 最近记录: |