2009-07-15 20 views
24

私はQt Creatorを使用しており、C++静的ライブラリプロジェクトに依存するQt GUIプロジェクトを持っています。私は、GUIアプリケーションのリリースバージョンを.libのリリースビルドと、デバッグリリースをGUIアプリケーションのデバッグ.libとリンクさせたいと考えています。qmake/Qt Creatorを使用したデバッグ/リリースライブラリとのリンク

LIBS += -L./libfolder -lmylib.lib

しかし、私は、私がリリースとデバッグのために異なる-Lコマンドを使用する方法を見ることができない:私は私の.PROファイルに次のような行を含めることによって、プロジェクトに追加のライブラリを追加する方法を発見しましたビルド。

これを行うためのqmakeのサポートはありますか?プロジェクトファイルで

答えて

22

あなたはDEBUGがCONFIGのqmakeの変数に追加されている場合は、デバッグ中括弧内のビットが使用されている。この

debug { 
    LIBS += -L./libfolder -lmydebuglib.lib 
} 

release { 
    LIBS += -L./libfolder -lmyreleaselib.lib 
} 

ような何かを行うことができ、リリース括弧内の同様のものがRELEASE場合は含まれていますCONFIG変数に追加されました。

ます。また、使用することができます「!デバッグ」ではなく「解放」(すなわち、デバッグを設定していないときに)あなたはqmakeのhereに関する詳細な情報を見つけることができます

+2

次の行に中かっこを入れていると、チョークすることに注意してください... :-( – nus

+1

Windowsでも同じですか?Libファイルのパスに空白がある場合はどうですか? –

42

通常

debug:LIBS += ... 
else:LIBS += ... 

ソリューションの休憩時にユーザーが単純にデバッグビルドとリリースを切り替えることがCONFIG += debugまたはCONFIG += releaseを使用して(と彼らはありません。誰がCONFIG += debugCONFIG -= release release_and_debugを言うことを覚えていません:)。

これはdebug上のスコープに標準的な方法です:

CONFIG(debug, debug|release) { 
    # debug 
    QMAKE_LIBDIR += "path/to/debug/lib" 
} else { 
    # release 
    QMAKE_LIBDIR += "path/to/release/lib" 
} 

Cfとthe qmake docs

EDIT 2013-11-17-LfooLIBSに使用しないでください。標準的な方法は、QMAKE_LIBDIRにパス(-Lなし)を追加することです。

+2

正確にはどういう意味ですか正式な方法で、マーク?十分な評判のない誰かが[ここ](http://stackoverflow.com/questions/24511097/qt-qmake-libdir-vs-libs)にそれを尋ねている。 – lpapp

+1

+1 "cannonical"フォームデバッグ{} release {}を使用しているので、いつもデバッグ{}ライブラリにリンクしていたので、Windowsで少し問題がありました。 – McLeary