2009-05-22 3 views
12

Qt Creatorを使用してアプリケーションを開発する方法を学んでいます。私はWindows上で簡単なアプリケーションを構築していますが、使用するmingwm10.dll、QtCore4.dll、QtGui4.dll、QtNetwork4.dllに依存しています。 QtQui4.dll不足QtGui4.dllのサイズを縮小するか、アプリケーションの展開サイズを減らすために他の何かをすることは可能ですか? 静的リンクはどうですか?それはdll全体を埋め込むのか、それとも使用される部分だけを埋め込むのだろうか? また、Qtではいくつかのdllを静的にリンクしたり、動的にリンクすることは可能ですか?Qt GUIアプリケーションのサイズを小さくする

答えて

10

いくつかの機能を削除してQtGui4.dllを縮小することはできません。 Trolltechはhaving a look at thisですが、良い解決策はかなり遠いようです:

静的なリンクは、私は非常にWindows上で問題があると思う。私が試したたびに、それは悪夢だった。

これは、通常のDLLがついているようです。あなたが行うことができる唯一のこと(私は私のQtアプリケーションのために行う場合):

  • 使用UPXあなたのインストーラであなたのDLL

または

  • 利用強い圧縮を圧縮する

dllを既にUPXしている場合は、インストーラの圧縮でさらに圧縮することはできませんが、これによって他のファイルが減少する可能性があります。

+1

はい、 "UPX -9 QtGui4.dll"は行く方法です:) –

+0

面白いヒント、私はこれまでにUPXを使ったことはありません。 – PowerApp101

+0

ありがとう!この方法でアーカイブできるGUI Qtアプリケーションの最小フットプリントは何ですか? – Dmitri

5

最良の方法は、configureを使ってQtライブラリを手動で設定することです。

configure --help 

ディスクとメモリの両方のフットプリントを減らすためのさまざまなオプションがあります。例えば。

--no-stl 
--no-exceptions 

は、アプリケーションのフットプリントを削減できます。 mkspecを変更して、より積極的な最適化フラグをコンパイラに使用することもできます。

1

静的にリンクすると、1.5GBのexeで終了し、プラグインのような機能を犠牲にします。したがって、DLLを配布したくない場合を除いて、それは本当に価値がありません。しかし、ええ、あなたはHenrikの提案を試して、Webkitを除外することもできます。これはおそらくコードの最大のチャンクです。

+0

を参照してください。WebKitを除いた元の質問の文脈では、それを使用しませんでした(Core、Gui、Networkモジュールのみ)。 –

関連する問題