12

Qt プロジェクトに2 つのサブディレクトリがdocrootあります。configこれらのディレクトリ内のファイルは、プロジェクトをビルド/デバッグするたびにビルド ディレクトリにコピーされます。

https://stackoverflow.com/a/3991210/356726の時点で、これはINSTALLS( QtDoc )を使用することで可能になります。これは、コピー コマンドを実行するよりもはるかに簡単なようです (例:ここ)。同様のアプローチがここで説明されています。

config.path    = $${DESTDIR}/config
config.files   = config/*
docroot.path   = $${DESTDIR}/docroot
docroot.files  = docroot/*
INSTALLS       += config docroot

しかし、Qt Creator でビルドを実行しても何も起こりません。これは、実行する必要があることを示していますmake install。ビルドするたびに、Qt Creator 内からこれを自動的にトリガー/実行できますか。常に最新バージョンのファイルが必要です。

編集:最終的には$$OUT_PWD代わりに使用しました$$DESTDIR

Logan からの元のコメントは次のとおりです。.pro ファイルは."$$OUT_PWD$$DESTDIR$$OUT_PWD$$PWD

4

2 に答える 2

17

必要なのは、カスタム ビルド ステップです。

  1. プロジェクトモードに切り替えます: Ctrl+5 を押します。
  2. Build Stepsの下のBuild Settingsタブで、 Add Build Step をクリックします。
  3. メニューから [作成] を選択します。
  4. インストールMake arguments:テキスト入力ボックスに書き込みます。

(これらを確認したバージョンは Qt Creator 2.4.1 です。)

于 2012-07-22T09:08:18.650 に答える
6

私はウィンドウ7でシャドウビルドを使用していましたが、あなたと同じ問題が発生しました。

さらに、INSTALLSmake installを設定して実行した後、次のメッセージが表示されました。

`インストール'のために何もする必要はありません。

その理由は、$$DESTDIRを自分で設定する必要があるためです。

私の場合、*。qmlファイルをコピーしたかったので、それを実現しました。

# if you are using Shadow build, you need to get the output folder
CONFIG(release, debug|release): DESTDIR = $$OUT_PWD/release
CONFIG(debug, debug|release): DESTDIR = $$OUT_PWD/debug

# if you are using normal build (non-shadow) that would have worked as well.
CONFIG(release, debug|release): DESTDIR = release
CONFIG(debug, debug|release): DESTDIR = debug    

QmlFiles.path = $$DESTDIR/Qml
QmlFiles.files += $$files(Qml/*.qml)

INSTALLS += QmlFiles

編集 :

ShadowBuildOutput$$OUT_PWDパスを見つけるために使用できることがわかりました。それで、私はあなたが使っていたものに最終的に近づくコードを修正しました。

于 2012-10-31T22:15:41.333 に答える