web-dev-qa-db-ja.com

freebsdにi386 / x86共有ライブラリをインストールするにはどうすればよいですか?

GDBは、プログラムがgcc -m32(i386プログラム)は共有ライブラリ(i386:x86-64)と互換性がありません。

gdbの出力:

(gdb) r
Starting program: /root/format
warning: `/libexec/ld-elf.so.1': Shared library architecture i386:x86-64 is not compatible with target architecture i386.

誰かがこれを修正する方法/ライブラリを取得する方法を説明できたらいいですね。

3
BitFriends

あなたはあなたのシステムについて何も言わないので、私は最も可能性の高い推測をします。 64ビットシステムを実行していて、32ビットライブラリをインストールしていない。最も簡単な方法は、インストーラーから単純に追加することです。

_ bsdinstall
_

...そして_lib32_を選択します。インストーラーはいつでも実行できます(最初のインストールだけでなく)。それでおしまい。

それがすることは、_lib32.txz_ tarballを http://ftp.freebsd.org/pub/FreeBSD/releases/AMD64/12.1-RELEASE/ のような場所から取得して、それを_/usr/lib32_。正しいバージョンを取得することを忘れないでください(_uname -a_で確認してください)。必要に応じて、これを手動で行うこともできます。多分あなたはすでにそれを_/usr/freebsd-dist_またはDVDで利用可能にしています。

手動で行う場合は、新しいライブラリがあることをldconfigに伝える必要があります。または、通常とは異なる場所に配置した場合は、パスを修正する必要があります。

_ldconfig -32 /usr/lib32/ /usr/local/lib32/compat/
_

...または...

_ldconfig -v -m -R /usr/lib32
_

ldconfig(8) を参照

64ビットシステムで32ビットバイナリを実行しようとする理由はほとんどわかりません。それが実際に古いバージョンで作成されたためである場合、might互換性パッケージの1つが必要です: misc/compat8xmisc/compat9xmisc/compat10xmisc/compat11x

そして念のために:最近のシステムでは通常AMD64(i386-64)をターゲットにすることを知っていますか? _i386_は32ビットのみであり、64ビットに移行しました。これは些細なことかもしれませんが、質問にコンテキストがないため、間違った問題を解決しようとしていないことを確認したいだけです。

6
Claus Andersen