2013-05-17 184 views
4

在Qt Creator中,當我創建一個新的單元測試項目時,如果項目的完整路徑包含空格,它將無法成功構建。Qt創建器單元測試項目

我跟蹤到了由qmake生成的makefile的bug。 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。

回答

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。

+0

這可能很明顯,但是一旦您更改了.prf文件,您將不得不再次爲QtCreator運行qmake以查看更新後的QT_TESTCASE_BUILDDIR。 – BKewl