2010-12-06 4 views
6

私は自動的にqmakeを経てTranslation_de.qmにコンパイルされたドイツ語翻訳とQtのプロジェクト、Translation_de.tsを、持っている:自動生成リソースファイルをQmakeに指定する方法は?

生成 Translation_de.qmは、リソースとして最終的なアプリケーションにコンパイルされ
TRANSLATIONS += Translation_de.ts 
... 
QMAKE_EXTRA_COMPILERS += lrelease 
lrelease.input   = TRANSLATIONS 
lrelease.output  = ${QMAKE_FILE_BASE}.qm 
lrelease.commands  = $$[QT_INSTALL_BINS]/lrelease ${QMAKE_FILE_IN} -qm ${QMAKE_FILE_BASE}.qm 
lrelease.CONFIG  += no_link target_predeps 

RESOURCES += Resources.qrc 

<RCC> 
    <qresource> 
    ... 
    <file>Translation_de.qm</file> 
    </qresource> 
</RCC> 

A:Resources.qrcはこのようになります

私はここで間違って何をやっている

RCC: Error in 'Resources.qrc': Cannot find file 'Translation_de.qm' 

:これのLLは、新鮮なチェックアウトのqmakeのに非常に最初の呼び出しは、以下の迷惑な警告をスローすることを除いて、正常に動作しますか? Translation_de.qmのような自動生成リソースファイルを正しく指定するにはどうすればよいですか?

答えて

6

たとえば、qmakeフェーズで生成されたファイルを作成します。 system(lrelease...)。他のルールもそのまま残しておくことで、入力ファイルが変更されたときにqmakeを再実行する必要はありません。

2

私が何をしたいが、私はが「通常」のコンパイル手順が発行される前に、それが実行されることを保証target_predepsに知っているようlrelease.CONFIG限り

のためだけに「ignore_no_exist」であることを考えます。だから実際に警告を取り除くことについてだけであれば、上記のフラグを追加してください。あなたのqm作成は、qmake呼び出しで作成されたmakefileを実行すると動作します。あなたのQMファイルを追加しようとし作成されていない場合は

PRE_TARGETDEPS += compiler_lrelease_make_all 

チェックアウトあなたを助けるかもしれないより多くのオプションについては、このlink

+0

'qmake'は見つからないファイルへの依存関係を生成しません。結果として得られるMakefileは並列ビルドに失敗します。 –

関連する問題