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、プロジェクトは正常にビルドされます。

明らかに、バックスラッシュを毎回手動で削除したくありません。バックスラッシュを削除するカスタム ビルド ステップも避けたいと思います。.proqmakeには非常に多くのオプションがあるため、これを修正するファイルに入れることができる何かがあることを望んでいました.

のようなものを試しましたDEFINES -= QT_TESTCASE_BUILDDIRQT_TESTCASE_BUILDDIRただし、まだ定義されていない ため、機能しません。testlibどうやら後で独自の定義を追加します。

私は使っている:

  • ビジュアル スタジオ 2010 SP 1
  • Qt 5.0.2
  • Qt クリエーター 2.7.0
  • ウィンドウズ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 に答える