Qtアプリケーションをコンパイルして実行することに成功しました。しかし、元のパスの外に.exeファイルを移動すると、Qt DLL(mingw10.dll、qtcore4.dllなど)を手動でコピーする必要があることがわかりました。アプリケーションとこれらのライブラリをリンクする動的な方法はありますか?Windows用Qtアプリケーションのコンパイル済み配布
答えて
私は、これらのライブラリをアプリケーションに「静的に」リンクしたいと思っています。 これは基本的には、すべてがあなたのexeの中でロールバックされることを意味し、それらのdllはもう必要ありません。
静的リンクには利点がありますが、欠点もあります。あなたはこれがあなたがこのように行く前にやりたいことが絶対に確実であるはずです。
あなたは、あなたが静的に構築されるためにあなたのQtの設定を変更する必要があります静的リンクを使用したい確信している場合は、あなたの特定の問題については深さの差Dynamic Linking vs Static Linking
を説明し、このリンクをチェックしてください。デフォルトでは、動的リンクを使用するようにQt配布が設定されています。そのhereの便利なガイドがあります。
基本的にビルドをセットアップするときは、動的リンクの代わりに静的リンクを使用するようにすべてのプロジェクト設定を変更するには "configure -static"を実行する必要があります。そしてQtをもう一度構築してください。
Qtライセンスも確認する必要があります。 Qt LGPLライセンスを使用していて静的にリンクしたいのであれば、MihaiLimbăşanが彼のコメントで賢明に説明したように、すべてのオブジェクトファイル(.oと.obj)を含める必要があります。あなたが購入してQtを支払った場合、問題はありません。
DLLがアプリケーションのPATHにある場合は、それらが検出されて動作します。だから、あなたのQtバイナリ/ dllが%PATH%環境変数にどこにあるのかを追加することができます。アプリケーションのインストーラを作成する場合は、binディレクトリにあるようにこれらのライブラリをパッケージ化する必要があります。そうしないと、すべてのユーザがQtをインストールしてコンパイルする可能性があります(ヒント:最初のオプションと一緒に行ってください:)
- 1. LinuxでQTアプリケーションを配布する
- 2. NodeJSアプリケーションにコンパイル済みのJSを配置する場所
- 3. Symbian用マルチプラットフォームQtアプリケーションのコンパイル
- 4. Windows Phoneアプリケーションのテストバージョンの配布
- 5. Profiler QTアプリケーション(Windows用)
- 6. Windowsのアプリケーションを配布する
- 7. コンパイル済みPHP?
- 8. コンパイル済みのクエリ
- 9. pyinstallerコンパイル済みバイナリをWindows用に実行できません
- 10. WindowsのQt:ビルド環境と再配布の問題
- 11. コンパイル済みの動的共有ライブラリを使用してPythonパッケージを配布する
- 12. コンパイル済みPython CGI
- 13. Windowsインストーラを使用してJava Webアプリケーションを配布する
- 14. コンパイル済みのLinQクエリ
- 15. GCCは、コンパイル済みのアセンブリ
- 16. コンパイル済みの.Net Exe
- 17. VFPアプリケーションの配布
- 18. iPadアプリケーションの配布
- 19. WindowsのコマンドラインからQtアプリケーションをコンパイルする
- 20. 他の実行時コンパイル済みアセンブリの参照実行時コンパイル済みアセンブリ
- 21. Java WebアプリケーションのJSPのコンパイル済みサイズの確認
- 22. Windows x64用のプリコンパイル済みSQLiteバイナリ
- 23. System.NotSupportedExceptionコンパイル済みLINQクエリ
- 24. 奇数コンパイル済みコード
- 25. コンパイル済みLINQクエリとDataLoadOptions ...
- 26. WindowsインストールでCygwinコンパイル済みPythonモジュールをインストールする
- 27. コンパイル済みのアプリケーションで開発者ツールを開くボタン
- 28. MATLABコンパイル済みアプリケーションでjavaframeのアイコンを変更
- 29. Dotpeek - DLLファイルの変更 - プロジェクトで修正済み(再コンパイル済み)を使用
- 30. Windowsで静的なQTアプリケーションをコンパイルする
静的リンクはLGPLに違反しませんが、アプリケーションの.o/.objファイルを提供して、エンドユーザーがオブジェクトファイルを別の(互換性のある)Qtバージョンにリンクすることで作業可能な実行ファイルを再構築できるようにする必要があります。詳細については、ここをクリックしてください:http://stackoverflow.com/questions/2945612/2946131#2946131 –
私はこれが論争の的な問題だと言いました。 :) – Liz
あまり論じられていません:) LGPLはこの問題についてはっきりしています。ライセンスを読むのが好きな人は誰もいません。 –