3

オープンソースとライセンスに関する基本的な理解に問題があります。誰かが以下のシナリオについていくつかの質問を明確にしてください. 非常に基本的なことでしたらすみません

  1. 私はいくつかのオープン ソース ライブラリを使用する予定のプロプライエタリ ソフトウェアを作成しています。glibc と C コンパイラも必要ですが、OS のデフォルトの gcc ツールチェーンを使用したくなかったので、crosstools-ng を使用して独自にビルドしました

  2. 現在ct-ngでは、libstdc++ライブラリが静的にリンクされていると思います(これはc ++用であり、ほとんどの場合それを使用しないと思います)が、ツールチェーン構成から、libcは静的または動的にリンクされていますか? その場合、glibc が LGPL であり、それを自分のプロプライエタリ ソフトウェアにリンクできることを考えると、この静的リンクによってライセンスに関して問題が発生することはありますか? 自分のソフトウェアをクローズソースにすることはできますか? または、コンパイルされたオブジェクトを解放する必要がありますか。

私のツールチェーン構成は以下のとおりです.glibcが静的または動的にリンクされている場合、誰かが私を指摘できますか?

Target: x86_64-some-linux-gnu
Configured with: /home/balravin/tools/platform/x86/src/gnu/gcc/4.4.7/.build/src/gcc-4.4.7/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=x86_64-some-linux-gnu --prefix=/home/balravin/tools/platform/x86/obj/gnu/gcc/4.4.7/x86_64-some-linux-gnu --with-sysroot=/home/balravin/tools/platform/x86/obj/gnu/gcc/4.4.7/x86_64-some-linux-gnu/x86_64-some-linux-gnu/sysroot --enable-languages=c,c++,fortran --with-pkgversion='crosstool-NG 1.15.3' --disable-sjlj-exceptions --enable-__cxa_atexit --enable-libmudflap --enable-libgomp --enable-libssp --with-gmp=/home/balravin/tools/platform/x86/src/gnu/gcc/4.4.7/.build/x86_64-some-linux-gnu/buildtools --with-mpfr=/home/balravin/tools/platform/x86/src/gnu/gcc/4.4.7/.build/x86_64-some-linux-gnu/buildtools --with-ppl=/home/balravin/tools/platform/x86/src/gnu/gcc/4.4.7/.build/x86_64-some-linux-gnu/buildtools --with-cloog=/home/balravin/tools/platform/x86/src/gnu/gcc/4.4.7/.build/x86_64-some-linux-gnu/buildtools --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --enable-target-optspace --with-long-double-128 --disable-multilib --with-local-prefix=/home/balravin/tools/platform/x86/obj/gnu/gcc/4.4.7/x86_64-some-linux-gnu/x86_64-some-linux-gnu/sysroot --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.4.7 (crosstool-NG 1.15.3) 
4

1 に答える 1

12

libc.so法的にも技術的にも、動的リンクを作成する理由は多数あります。

法的な面では、GNU libc のLGPLライセンスでは、ユーザーが libc を強化することを許可する必要があります。したがって、静的にリンクされたプロプライエタリなソフトウェアを販売する場合 (技術的には悪い考えです)、ユーザーがより良いバージョンの libc に再リンクする手段を提供する必要があります。*.o具体的には、ソフトウェアのオブジェクトも指定する必要があるでしょう。

技術的な面では、動的リンクは、特に NSS 関連の機能 (および他の多くの機能など) を間接的に利用する、または動的リンクを使用libc.soするすべての機能でほぼ必須です( nsswitch.conf(5) & nss( 5) を参照) ) ) )。また、libc を動的にリンクする方がはるかに効率的です (RAM は使用するすべてのプロセスでほぼ共有され、実行可能ファイルのサイズは小さくなります。最も重要なことは、アップグレードがより簡単になることです)。libdl.sold.sogetpwentgetaddrinfolibc.solibc.so

ところで、あなたの会社はあなたの Linux ソフトウェアを無料にすることを検討しましたか? 多くの利点があり、多くの企業がオープン ソース ルートを選択しています。

于 2012-07-27T18:16:43.050 に答える