【问题标题】:Qt Creator Unit Test ProjectQt Creator 单元测试项目
【发布时间】:2013-05-12 17:50:59
【问题描述】:

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

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 也会出现这种情况。

【问题讨论】:

    标签: qt unit-testing qt-creator qtestlib


    【解决方案1】:

    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 要好。

    【讨论】:

    • 这可能很明显,但是一旦您更改了 .prf 文件,您必须再次显式运行 qmake 才能让 QtCreator 看到更新的 QT_TESTCASE_BUILDDIR。
    猜你喜欢
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    相关资源
    最近更新 更多