2017-05-05 8 views
-1

私は独自の関数をいくつか使ってlinux上で動的ライブラリhello.soを作成したいと考えています。 lddでは、libstdC++のようないくつかのシステムライブラリが必要です。.soの作成時にダイナミックライブラリをバインドする

このhello.soは常にlibstdC++にバインドされますが、私のコンピュータにはhello.soを作成するときに修正することができますか?したがって、hello.soとlibstdC++を他の人に送ることができました。

よろしく、

+0

実際に解決しようとしている問題は何ですか? –

+0

私はlibhello.soを他の人に与えたいと思っています。私は他の人も彼のコンピュータでそれを使うことができるようにしたいと思います。 lddでは、libhello.soはlibstdC++を使用しています。私のコンピュータではそうです。 libhello.soは常にlibstdC++にバインドすることができます。 – Feng

+0

異なるシステムのlibstdC++。のバージョンが異なる場合があります。 – Feng

答えて

0

あなたがプログラムまたは 動的ライブラリの依存関係(共有ライブラリ、UNIX系OS上で、Windows上で DLL)を持っているディストリビューション用のライブラリを作る 風水あなたは当然のこととして受け入れます コンピュータでの操作性は、ランタイム 依存性の同一または互換バージョンの利用可能性によって制約されます。つまり、 互換ホストのエコシステムにのみ配布できます。これはLinux、Windows、MacOS、 アンドロイド、iOSエコシステムの基礎となり、うまく機能します。

は バイナリ自体がすべて含まれるように、あなたは、static linkageと それを構築する必要があります(通常は求められているものと を超えた)極力その互換性を最大化するために何の動的ライブラリに の依存関係を持っていないソフトウェアを配布したいです実行する必要があるコードの これを正常に実行するには、システムに静的バージョン (libstdc++など)がインストールされていて、デフォルトで がツールチェーンに付属している動的バージョンにリンクしている必要があります。

静的に リンクされた製品を配信する特定の欠点がある場合を除き、これについては心配しないでください。

関連する問題