2016-12-16 18 views
1

g ++を使用してすべての使用可能なライブラリを静的にリンクする場合は、この人は-staticフラグをコンパイラに渡します。Qtクリエータでライブラリを静的にリンクさせる方法

しかし、どのようにQtの創造主からそれを行うには? がHow to make Qt and Qtcreator link the libraries statically instead of dynamic?

ポストは

CONFIG += static 

を使用することを示唆しかし、それだけでは動作しません:

まず、私はこのアドバイスを試してみました。

は第二に、私は別のアプローチを試してみましたが、私の.PROファイルに次の行を追加しました:

QMAKE_CXXFLAGS += -static 

のいずれかの問題を解決しませんでした。 コンパイラの出力を解析して発見しました。

-staticフラグは、ソースをオブジェクトファイルにコンパイルする場合にのみ追加されます。 しかし、実行可能ファイルをビルドする場合、このフラグは存在しません。

g++ -c -pipe -fno-keep-inline-dllexport -static -g -std=gnu++11 -frtti -Wall -Wextra -fexceptions -mthreads -DUNICODE -DQT_QML_DEBUG -I..\..\..\ASSETS\PROG_CPP\MY_CPP\2016\test -I. -I..\..\..\icu\dist\include -I..\..\5.7\mingw53_32\mkspecs\win32-g++ -o debug\main.o ..\..\..\ASSETS\PROG_CPP\MY_CPP\2016\test\main.cpp 
g++ -Wl,-subsystem,console -mthreads -o debug\test.exe debug/main.o -LC:\icu\dist\lib -lsicuio -lsicuin -lsiculx -lsicule -lsicuuc C:\icu\dist\lib\sicudt.a -lpthread -lm 

すべてのコマンドに-static追加するqmakeのを強制する方法:ここで

は正確なコンパイラは、私は、コンパイラの出力]タブからコピーするコマンドがありますか?

答えて

2

私が後で発見したように、解決策はかなり明白でした。 Qmakeにはリンカフラグを担当する特別な変数QMAKE_LFLAGSがあります。

QMAKE_LFLAGS += -static 
+0

それは私の場合に役立つものではなく、この: は、だから私がしなければならなかったすべては、.PROファイルに以下を追加することです 'UNIXの場合:LIBS + = -Wl、-Bstatic -l - Wl、-Bdynamic'は正常です – dyomas

+0

Windowsでは認識できないオプション/静的 – jjxtra

関連する問題