เกิดข้อผิดพลาดขณะโหลดไลบรารีที่แชร์: libopenal.so.1 (เกม 'pacapong' ใน Ubuntu 14.10)


11

ฉันดาวน์โหลดเกมpacapongสำหรับ Linux และพยายามเรียกใช้ไฟล์ปฏิบัติการซึ่งส่งผลให้เกิดข้อผิดพลาด:

$ ./runner 

./runner: error while loading shared libraries: libopenal.so.1: 
cannot open shared object file: No such file or directory

เห็นได้ชัดว่ามีความจำเป็นในการโหลดlibopenal.so.1:

$ objdump -p ./runner |grep libopenal.so.1

NEEDED libopenal.so.1

มีการlibopenal.so.1โกหก/usr/lib/x86_64-linux-gnuและฉันสามารถทำได้:

$ ldd libopenal.so.1
linux-vdso.so.1 =>  (0x00007fffcdbbb000)

...

ฉันจะไม่เรียกใช้ไฟล์ปฏิบัติการนี้ (./runner) ในฐานะ root (ในกรณีที่ปัญหานี้อาจเกี่ยวข้องกับสิทธิ์ไม่เพียงพอสิ่งที่ฉันไม่ได้คาดเดา)

แล้วฉันจะลองทำอะไรอีก

คำตอบ:


12

ข้อผิดพลาดเป็นเพราะเป็นเกม 32 บิตที่คุณพยายามเรียกใช้ใน Linux 64 บิต ฉันทำงานผ่านข้อผิดพลาดโดยข้อความแสดงข้อผิดพลาดของ Google เพื่อค้นหาแพ็คเกจที่ฉันขาดหายไป ฉันลงเอยด้วยการติดตั้งแพ็คเกจต่อไปนี้เพื่อให้เกมทำงาน:

sudo apt-get install libxxf86vm1:i386 libglu1-mesa:i386 libopenal1:i386 libssl1.0.0:i386

คุณช่วยอธิบายรายละเอียดเกี่ยวกับสิ่งที่การติดตั้งแพ็คเกจเหล่านี้และวิธีการแก้ไขปัญหาได้หรือไม่?
Michael Lindman

ขอบคุณสำหรับคำตอบของคุณมันช่วยแก้ปัญหาได้ มีคุณคิดที่จะรู้ทุกอย่างเกี่ยวกับระบบดีและจริง ๆ แล้วคุณรู้เกี่ยวกับมัน แต่คุณไม่คิดว่ามัน ... ;)
de-พฤตินัย

นี้. GOG รวมกลุ่มเกมที่เชื่อมโยงกับ Linux แบบ 32 บิต (ทำไมเป็นเช่นนั้น) ดังนั้นหากคุณมีเครื่อง 64- บิตคุณจะต้องมีทั้ง OpenGL / etc library สำหรับรุ่น 64 บิตและ 32 บิต มันสับสนเป็นพิเศษเพราะมันจะบอกคุณว่าคุณขาดห้องสมุดที่คุณรู้จัก
Katastic Voyage

0

สำหรับอนาคตการรัน ldd on ./runner จะบอกคุณว่าไลบรารีนั้นต้องการหรือไม่หากพวกเขาขาดหายไปและหากเป็น i386 หรือ 64 บิต

$ ldd บน. / runner

/ undertale / game $ ldd ./runner

linux-gate.so.1 (0xf7798000)

libgtk3-nocsd.so.0 => /usr/lib/i386-linux-gnu/libgtk3-nocsd.so.0 (0xf7759000)

libstdc ++. so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xf75d3000)

...

libXrandr.so.2 => ไม่พบ

libbsd.so.0 => /lib/i386-linux-gnu/libbsd.so.0 (0xf6b41000)

libXau.so.6 => /usr/lib/i386-linux-gnu/libXau.so.6 (0xf6b3d000)

libXdmcp.so.6 => /usr/lib/i386-linux-gnu/libXdmcp.so.6 (0xf6b36000)

หมายเหตุฉันยังคง xrandr หายไปสำหรับ i386 ดังนั้นนี่ยังไม่สามารถใช้งานได้

$ ./runner

./runner: ข้อผิดพลาดขณะโหลดไลบรารีที่แชร์:> libXrandr.so.2: ไม่สามารถเปิดไฟล์วัตถุที่ใช้ร่วมกัน: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.