10

問題

qmakeをQTCreatorと組み合わせて使用​​して、マルチ実行可能QTプロジェクトに取り組んでいます。各実行可能ファイルには独自の.proファイルがあり、それらはすべて包括的な.proファイル(template = subdirs)に含まれています。個々の.proファイルには、すべての実行可能ファイルが同じ場所に配置されるようにDESTDIRを設定する共通の.priファイルも含まれています。このDESTDIRは、デバッグとしてコンパイルされているのか、リリースとしてコンパイルされているのかによって異なります。これは、包括的なサブディレクトリの下に別のサブディレクトリ.proを介して実行可能ファイルのコレクションを追加するまで、うまく機能しました。全体的な設定は次のようになります。

  • All.pro
  • | -Project1.pro
  • | -Project2.pro
  • | -Subdirs.pro
  • | -| -Project3.pro
  • | -| -Project4.pro

新しくチェックアウトしたコピーがある場合は、qmakeを実行でき、デバッグからリリースに、またはその逆に切り替えるまで、すべてが機能します。これを行うと、Project1.proとProject2.proは正常に更新され、実行可能ファイルが正しいディレクトリに配置されますが、Project3.proとProject4.proは古いディレクトリを使用します。


試み

影響を受けるすべてのmakefileを手動で削除すると、qmakeは新しいmakefileを生成します。毎回すべてのmakefileを削除するためのある種のプリコンパイルコマンドを書くことができると思いますが、それがすべてのプラットフォームで機能することを確認するために費やす必要がある時間は言うまでもなく、それは物事を行うための間違った方法のようです。

QT4.6.4から4.8.1でこれを試しました

QT Creatorを使用するときは、コマンドライで行うことを模倣するさまざまなビルド構成を介してデバッグモードとリリースモードを切り替えます(つまり、CONFIG + = debugを追加または削除します)。


質問

  • qmakeがmakefileを更新するのを妨げているのは何ですか?
  • qmakeの単なるバグである場合、最善の回避策は何ですか?

ありとあらゆる助けを大いに感謝します。

4

2 に答える 2

9

QMakeのドキュメントには、プロジェクトモード(.proファイルの作成)専用であると記載されてい-rますが、qmakeにオプションを追加して、ディレクトリを強制的に再帰させるようにしてください。

これは、過去に多くのレベルの深いSUBDIRプロジェクトで使用したものです。

于 2012-10-03T14:27:37.467 に答える
1

同じ問題が発生し、デバッグ/リリースを切り替えた後、トップレベルディレクトリから「makeqmake」を実行することで回避しました。

于 2013-02-11T20:51:41.627 に答える