iconvを使用してFreeBSD 10-CURRENT以前のバージョンに対して1つのバイナリしか持たない方法

iconvを使用してFreeBSD 10-CURRENT以前のバージョンに対して1つのバイナリしか持たない方法

FreeBSD 10-CURRENT は libiconv ライブラリの代わりにデフォルトの iconv に切り替えます。私たちのチームには、以前のバージョンのFreeBSDでコンパイルされたiconv呼び出しを使用するコードがあります。 10-Currentで実行可能ファイルを起動すると、次のエラーで実行されません。

Shared object "libiconv.so.3" not found, required by our-lib.so

これは、現在存在しない-libiconvでコンパイルしたために発生します。しかし、私たちは2つの異なるバージョンのFreeBSDでコンパイルしたくありません。それでは、iconvを使用して古いバージョンのFreeBSDで1つのバイナリをコンパイルする方法はありますか?

ベストアンサー1

FreeBSDは、非自由(GPLd)コードをBSDライセンスの無料コードに置き換えるために新しいネイティブコードに切り替えます。

独自の無料実装を終えた後は、汚染された古いライブラリを削除したいことが明らかです。

コードが標準に従って書かれている場合は、簡単な再コンパイルで問題を解決できます。もともと iconv 実装 (Solaris) は libc にあり、FreeBSD も libc に新しいコードを入れたと仮定します。

おすすめ記事