Freebsd
如何在 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.
如果有人能解釋如何解決這個問題/如何獲取庫,那就太好了。
你沒有告訴任何關於你的系統的事情,所以我只會做出最有可能的猜測。您正在執行 64 位系統並且尚未安裝任何 32 位庫。最簡單的方法是從安裝程序中簡單地添加它們:
bsdinstall
…並選擇
lib32
. 您可以隨時執行安裝程序(不僅僅是第一次安裝)。就是這樣。它的作用是從http://ftp.freebsd.org/pub/FreeBSD/releases/amd64/12.1-RELEASE/
lib32.txz
之類的地方獲取 tarball並將其解壓縮到. 請記住獲取正確的版本(檢查)。如果您願意,也可以手動執行此操作。也許您已經在 DVD 中或 DVD 上提供了它。/usr/lib32``uname -a``/usr/freebsd-dist
如果您手動執行此操作,則可能需要告知
ldconfig
您有新庫。或者,如果您將它們放置在不尋常的位置,則需要更正路徑。ldconfig -32 /usr/lib32/ /usr/local/lib32/compat/
…或者…
ldconfig -v -m -R /usr/lib32
您很少說明為什麼要在 64 位系統上執行 32 位二進製文件。如果是因為它實際上是在舊版本上製作的,那麼您可能需要以下兼容性包之一:misc/compat8x、misc/compat9x、misc/compat10x、misc/compat11x
*只是為了確定:*您知道您通常會在最近的系統上針對 amd64 (i386-64) 嗎?
i386
只有 32 位,我們已經轉向 64 位。這對您來說可能微不足道,但由於問題中缺乏上下文,我只想確保我們沒有試圖解決錯誤的問題。