2016-03-27 14 views
4

https://wiki.qt.io/Licensing-talk-about-mobile-platformsをし、そのページに、それは言う:アンドロイド/ NecessitasAndroid用Qt - 静的または動的リンクと見なされる「APKのバンドルQtライブラリ」ですか?私はこのリンク読んでいる

ため

のQtをAndroid向けQtはQtののLGPL版を使用し、それは完全に だとしてアプリを作成するときに のQtライブラリを動的にリンクすることができます(また推奨され、サポートされています)。 Android用Qtを使用している開発者には問題ありません。アプリ開発者は ソースコードを閉じてアプリを公開することができます。心配する必要はありません。

静的にQtライブラリにリンクしている場合は、閉鎖ソースアプリケーションで の問題が発生する可能性があります。

だから、QtのCreatorで、ビルドセクションに3つのオプションを持つQtの展開というセクションがあります:APKでのQt

  • バンドルのQtライブラリをインストールする

    • 使用Ministroサービス
    • Qtライブラリを一時ディレクトリに展開する

    APKのバンドルQtライブラリを選択した場合、はまだとなります(動的ではありますが、技術的には静的なリンクであると見なされます)。 APKファイルの中でQtライブラリを見ることができるので、私が知る限り動的です。唯一の違いは、その場所です。

    /lib/armeabi-v7a/lib:libQt5Core.so、libQt5Gui.so、libQt5Widgets.soなどです。したがって、libsは静的にリンクされているのではなくエンドユーザーになります。 EXEであり、APKを実行するためには外部ライブラリを必要としません(技術的にAPKがAPK自体に存在するQtライブラリを必要としているにもかかわらず) - これが私が求めている理由です。

    非常に明確で直接的なものであるためには、ダイナミックリンクと見なされる「APKのバンドルQtライブラリ」オプションを選択していますか?

    ありがとうございました

  • +1

    LGPLの下でQtに静的にリンクすることは完全に合法であり、あなたのソースコードを開く必要はありません。あなたのオブジェクトファイルへのリンクを提供するだけで、再リンクする。 – dtech

    +0

    その応答のThx。それは有り難いです。 – rwx

    答えて

    5

    ダイナミックリンクです。 Qtライブラリは.soファイルで、APKファイルにバンドルされています。しかし、それらは実行可能ファイルとは別の.soファイルです。

    +1

    こんにちは!ここにもう一つのリンクがあります。私はさらに自信を持っています。http://stackoverflow.com/questions/11607682/does-qt-creator-by-default-statically-or-dynamically-link-its-libraries?rq=1 - QtによるほとんどのLGPL違反は、静的リンクのためではありません(動的であるため、デフォルトです)デフォルト以外のパラメータを使ってQtをコンパイルすることはできません。私の場合、私が使用するものはすべてデフォルトと公式です。 – rwx

    関連する問題