Shared-Library

錯誤的ELF類:在Linux中啟動由steam安裝的遊戲時出現ELFCLASS32

  • February 5, 2020

我已經從 linux ubuntu 18.04 的 Steam 商店安裝了“反恐精英全球攻勢”,但是當我(從終端)啟動它時,它會出現許多錯誤,如下所示:

Steam/steamapps/common/Counter-Strike Global Offensive/bin/datacache_client.so

error=Steam/steamapps/common/Counter-Strike Global Offensive/bin/datacache_client.so: wrong ELF class: ELFCLASS32

從已經回答的問題中,我已經知道我應該安裝 32 位共享對象,但是這些庫中的大多數(如果不是全部)在儲存庫中不可用,並且是由遊戲開發人員創建的。

我想知道我能做些什麼來抑制這些錯誤?

也不能直接從 Steam 應用程序啟動。

感謝您的幫助。

謝謝。

最後刪除所有位於遊戲根目錄 bin/ 下的 32 位共享對象(暫時)解決了問題。我認為這是遊戲本身的錯誤。

此外,我無法從儲存庫中安裝大部分這些庫,因為它們是該遊戲的專有共享對象。

您不能“抑制這些錯誤”:可執行二進製文件及其所需的所有庫必須全部為 64 位或全部為 32 位。為了執行應用程序,您必須提供它所需的所有庫的正確版本。

如果您的系統是 64 位並且您之前沒有安裝任何 32 位庫,您可能需要在包管理系統中啟用 32 位架構支持:

sudo dpkg --add-architecture i386

您可能還必須檢查您的儲存庫定義/etc/apt/sources.list和任何/etc/apt/sources.list.d/*.list文件。如果架構規範中有任何未註釋的行,例如:

deb [arch=amd64] https://...

那麼您可能希望刪除 ''

$$ arch=amd64 $$’’ 部分將包儲存庫訪問限制為僅限 64 位版本。 之後,執行sudo apt update或等效命令刷新可用包列表,然後您應該有任何可供選擇的庫包的 32 位版本,其名稱與相應的 64 位包相同,但:i386後綴為包裹名字。

引用自:https://unix.stackexchange.com/questions/565842