2016-03-01 15 views
6

私のアプリでlibが見つからないという問題が出てきました。これは、Qtプロジェクトの.proファイルに$$PWD.の私の理解に関連していることが判明しました。

  1. だから、両方のプロセスを構築することにより生成される.PROファイル OR ディレクトリを、含まれているディレクトリを、意味$$PWD.を行う(のような:**** - ビルドデスクトップQt_4_8_1_in_PATH__System__Debug)。あるいは、彼らは異なることを意味します。 OBJECTS_DIR = obj/Objのようないくつかの変数宣言では

  2. その.生成DIRを意味のように、それが見えます。一方、HEADERS += remoteclient.h ./RealPlay/realplay.h \では、.という意味で、.proファイルを含むディレクトリです。

  3. LIBSとDESTDIRなどではどういう意味ですか?

+0

ビルドディレクトリの各ディレクトリは '$$ OUT_PWD'です。 'PWD = $$ PWD") ' –

答えて

6

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

LIBSで同じことを意味します。私はちょうど私のプロジェクトでは、このようにそれを使用:

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

.は.PROファイル内の任意の特別な意味を持っていません。 Linux/Unixシェルと同じことを意味します:現在の作業ディレクトリ。 LIBSで使用している場合は、おそらくリンクコマンドが実行されているビルドディレクトリを参照することになります。 .は展開されません。あなたが-L.を言うなら、リンカは文字通り.かない場合がありますので、それは問題ではありません$$PWDに対するこれらのパスを扱いますHEADERS += remoteclient.h ./RealPlay/realplay.h \ qmakeはの場合は-L.

を取得します。 HEADERS += $$PWD/remoteclient.h $$PWD/./RealPlay/realplay.h \がこの場合の有効な検索パスになります。それ以外の場合、ソース外のビルドは機能しません。

パスの途中の.は何もしません。

+0

で' OBJECTS_DIR = obj/Obj'のようにデバッグすることができます。実際には '$$ PWD/obj/Obj'を意味しますか? '.../Linux32/**** - build-desktop-Qt_4_8_1_in_PATH__System__Debug/obj/Obj'' .pro'ファイルが '.../Linux32/QtCreator /'にあるビルドディレクトリにあります私はまだ少し混乱しています – Henry

+0

私はOBJECTS_DIRについて何も言わなかった。 – juzzlin

関連する問題