何時間も検索して試した後、ライブラリをexeに静的にリンクする方法を取得できませんでした。そこで、依存関係をexeフォルダーにコピーしようとしました。ボタンのクリックでラベルを変更するテスト プログラムを作成しました。それは14MBでした。私は何をすべきか ?私はicudt51.dll icuin51.dll icuuc51.dll libgcc_s_dw2-1.dll libstdc++-6.dll libwinpthread-1.dll Qt5Core.dll Qt5Gui.dll Qt5Widgets を使用しています
3 に答える
あなたの問題には多くの解決策があります:
1- Qt 4.8.5 を使用します。Qt 5 と Qt 4.8 の間に大きな違いはありません。Qt 4.8.5 は QtWebkits のデフォルトのサポートでコンパイルされていないため、icudt51.dll icuin51.dll icuuc51.dll ファイルに依存しないため、これが役に立ちます。
2- Qt 5 を使用する場合は、webkit を無効にして再コンパイルする必要があります。これにより、上記の依存関係も解消されます。詳細については、これを確認してください: 投稿
Qt 5.1.1 をそのまま (サードパーティのパッチなしで) 静的にリンクする場合は、インソース ビルドでのみ機能します。zlib クローン作成のバグが原因で、Shadow 静的ビルドが失敗します。ウィジェットのみを使用する upx された単純な実行可能ファイルは、5 MB 未満で、3 MB 程度になります。Qt 5 と Qt 4 で同じ球場にあります。MSVC2012 を使用して両方を静的にコンパイルしていますが、問題なく動作します。これらは完全な静的ビルドです。つまり、Qt ライブラリは静的であり、C/C++ ランタイムも静的です。唯一の依存関係は、システム DLL です。リリース ビルドには数分かかる場合があり、32 ビット システムでのビルドを忘れることがありますが、誰にとっても生活が楽になります。
静的にビルドされた実行可能ファイルの起動時間は驚くべきものです。それはかなり瞬時です:)