gcc -m32
GDBは、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.
誰かがこの問題を解決する方法/ライブラリを取得する方法を説明できると思います。
答え1
お客様のシステムについて何も開示していないので、最善を尽くして推測します。 64ビットシステムを実行しており、32ビットライブラリをインストールしていません。最も簡単な方法は、インストーラで追加することです。
bsdinstall
...次に選択しますlib32
。初めてだけでなく、いつでもインストーラを実行できます。それはすべてです。
それがすることは、lib32.txz
次のような場所でタールボールをもたらすことです。http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/12.1-RELEASE//usr/lib32
正しいバージョンをuname -a
入手する必要があります/usr/freebsd-dist
。
ldconfig
これを手動で実行する場合は、新しいライブラリがあることを知らせる必要があります。または、異常な場所に配置した場合は、パスを変更する必要があります。
ldconfig -32 /usr/lib32/ /usr/local/lib32/compat/
...または...
ldconfig -v -m -R /usr/lib32
バラよりLD構成(8)
64ビットシステムで32ビットバイナリを実行する理由はほとんど説明されていません。実際に以前のバージョンで作成されたためであれば、可能互換パックのいずれかをしたいですか?その他/compat8x、その他/互換9x、その他/互換 10x、その他/compat11x
確認車:最近のシステムでは、一般にamd64(i386-64)をターゲットにしていることを知っていましたか?i386
32ビットしかありませんでしたが、64ビットに移動しました。これは些細なように思えるかもしれませんが、質問に文脈が欠けているので、間違った問題を解決しようとしていないことを確認したいと思います。