web-dev-qa-db-ja.com

$$ PWDとは何ですか。 qtの.proの平均

アプリでlibが見つからないという問題が発生しました。これは、qtプロジェクトの.proファイルの$$PWD.の理解に関連している可能性があります。

  1. したがって、$$PWD.はどちらも意味します。proファイルを含むdir OR dir、つまりビルドプロセスによって生成されます(例:****-build-desktop-Qt_4_8_1_in_PATH__System__Debug)。または、それらは異なる意味を持ちます。

  2. OBJECTS_DIR = obj/Objのようないくつかの変数宣言では、.生成されたdirを意味するように見えます。一方、HEADERS += remoteclient.h ./RealPlay/realplay.h \では、.。proファイルを含むディレクトリを意味するように見えます。

  3. LIBSやDESTDIRなどでの意味はどうですか?

8
Henry

$$PWDは、現在のファイル(.proまたは.pri)があるディレクトリを意味します。

LIBSでも同じ意味です。私は自分のプロジェクトで次のように使用しました。

LIBS += -L$$PWD/deps/Android -lopenal

.は、.proファイルでは特別な意味はありません。これは、Linux/Unixシェルと同じ意味で、現在の作業ディレクトリです。 LIBSで使用する場合、おそらくlinkコマンドが実行されているビルドディレクトリを参照します。 .は展開されません。 -L.と言うと、リンカーは文字通り-L.を取得します。

HEADERS += remoteclient.h ./RealPlay/realplay.h \の場合、qmakeはこれらのパスを$$PWDに関連して処理するため、.があるかどうかは関係ありません。この場合、HEADERS += $$PWD/remoteclient.h $$PWD/./RealPlay/realplay.h \が効果的な検索パスになります。そうしないと、ソース外のビルドが機能しません。

パスの途中にある.は何もしないことに注意してください。

8
juzzlin