2013-09-06 6 views
6

スタティックライブラリをqmakeを使ってビルドするときにリンカにオプションを提供したいと思います。 MSVCでビルドするときに冗長なリンカ出力を得たいとします。プロジェクトファイルは次のようになります。静的ライブラリをqmakeにリンクするときにリンカオプションを提供する方法は?

# mylib.pro 
TEMPLATE = lib 
TARGET = mylib 
CONFIG += staticlib 
QT += core 
win32-msvc*: QMAKE_LFLAGS += /VERBOSE 
unix: QMAKE_LFLAGS += -v 

これはプロジェクトファイル全体です。オブジェクトが存在しない空の静的ライブラリが生成されるはずです。

QMAKE_LFLAGSでもQMAKE_LFLAGS_STATIC_LIBでもLIBSもリンカーに影響しません。これらの変数に設定されていても、Makefileに設定されることはありません。 QMAKE_LFLAGSがうまくいくならば、私は/VERBOSEまたは-vがコマンドラインのリンカーに渡されることを期待しています。

メイクファイルジェネレータが使用されているかどうかは関係ありませんが、この動作は一貫しているようです。興味のある2つのプラットフォームがあります。

qmake -spec win32-msvc2008 
qmake -spec macx-llvm 

qmakeのクロスプラットフォーム性のため、Qtをインストールしたプラットフォームでテストすることができます。これは、Qt 4.8.4と5.1.1の両方からqmakeで再生されます。 mkspecで指定されたmsvcのバージョンは関係ありません。

答えて

4

プロジェクトでは、LFLAGSはリンカーに渡されません。実際、このようなフラグを渡す方法はありません。

この解決策は、ジェネレータに依存します。

msvc_nmakeについては、LIBFLAGSが代わりにリンカーに渡されます。冗長出力を取得するには、あなたはそれが動作することを確認するには

QMAKE_LIBFLAGS += /VERBOSE 

を追加するかもしれませんが、どのシステムでも、あなたはqmake -spec win32-msvc2008を呼び出すことができます。特定のmsvcのバージョンは関係ありません。

unixmakeの場合は、ARを使用してリンカーを呼び出すので、フラグをQMAKE_ARに追加する必要があります。冗長出力を取得するには、追加する可能性があります。qmake -spec macx-llvmを検証するには、qmake -spec macx-llvmを呼び出します。他のUNIX仕様も同様に動作するはずです。

関連する問題