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 に新しいコードを入れたと仮定します。