• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Qtライブラリを静的にリンクしたい)

Qtライブラリを静的にリンクしたい

このQ&Aのポイント
  • Qt 5.11.0を使ってGUIアプリを作成しようとしていますが、実行時にDLLエラーが発生します。
  • 静的リンクのために4つの方法を試しましたが、うまくいきませんでした。
  • 静的リンクするための助言をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • myuki1232
  • ベストアンサー率57% (97/170)
回答No.1

Qt の静的ライブラリは公式からは提供されていませんので、自分でソースからビルドする必要があります。 例えば、URLの記事を参考にしてみてください。 私もやったことがありますが、公式のサポートは無い茨の道だわ、リンク時間は長いわ、プログラムサイズは大して小さくならないわで、一利も無いのでやめました。 また、商用ライセンスを購入しない限りはGPLになることもご注意ください。

参考URL:
https://qiita.com/informationsea/items/df2775c325769d6f56b3
kolona
質問者

お礼

なるほど、ありがとうございます。参考URLを参照したところ、「不可能ではないけれど・・・」という印象です。確かに、かなり頑張る必要がある割にはメリットないですね。 ”公式のサポートは無い”、”リンク時間は長い”、”プログラムサイズは大して小さくならない” 貴重な情報ありがとうございます。 現在のところ、自分以外にリリースする予定はないので、これほど煩雑な静的リンクを頑張る必要はないことに気づきました。 広大な横道に逸れるよりQtを使いこなすほうに注力しようと思います。 ありがとうございました。

その他の回答 (1)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

Qtライブラリを静的リンクをする方法は知りませんが(この手の奴は静的リンクするには単純にライブラリの指定順番を変えるだけでなく相互参照なども考慮して何度も書かないといけなかったり(-lQt5Gui -lQt5Widgets -lQt5Core -lQt5Guiみたいな)と組み合わせが無数にありすぎますし実行ファイルのサイズが小さくなるわけでもないので労力の割に合わないですから)、 方法3の手順は、libQt5Gui.a,libQt5Widgets.a,libQt5Core.aのアーカイブファイルを更にアーカイブしているだけなのでリンクには使えません。 もし、やるのでしたら一度オブジェクトファイルにばらしてarでまとめる事になります。

kolona
質問者

お礼

ありがとうございます。 arを誤解していたようです。しかもこの方法では結局静的リンクできないことがわかりました。 結局、静的リンクは公式非サポートでメリットもほとんどないことがわかりましたので、素直にDLLを使うことにします。