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.
誰かがこれを修正する方法/ライブラリを取得する方法を説明できたらいいですね。
あなたはあなたのシステムについて何も言わないので、私は最も可能性の高い推測をします。 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/compat8x 、 misc/compat9x 、 misc/compat10x 、 misc/compat11x
そして念のために:最近のシステムでは通常AMD64(i386-64)をターゲットにすることを知っていますか? _i386
_は32ビットのみであり、64ビットに移行しました。これは些細なことかもしれませんが、質問にコンテキストがないため、間違った問題を解決しようとしていないことを確認したいだけです。