libstdc ++ so.6: ไม่สามารถเปิดไฟล์อ็อบเจ็กต์ที่แชร์: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว


92

ฉันต้องการเรียกใช้คำสั่ง Cilkscreen ด้วยโปรแกรม cilk ++ แต่ฉันได้รับข้อผิดพลาดนี้

/usr/local/cilk/bin/../lib32/pinbin: เกิดข้อผิดพลาดขณะโหลดไลบรารีที่แบ่งใช้: libstdc ++ ดังนั้น 6: ไม่สามารถเปิดไฟล์อ็อบเจ็กต์ที่แชร์: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว

ได้โปรดช่วยฉันหน่อยได้ไหม

คำตอบ:


222

ลองสิ่งนี้:

apt-get install lib32stdc++6

7
นี้เป็นมากดีกว่าการติดตั้ง ia32-libs (ตามข้อเสนอของ Trion) การทำเช่นนี้ฉันต้องติดตั้งการอ้างอิงอื่น ๆ 1 หรือ 2 รายการในขณะที่ ia32-libs มีการอ้างอิง 241 รวมเนื้อที่ดิสก์เพิ่มเติม 267 MB
Mike

1
นอกจากนี้ยังทำงานเพื่อเรียกใช้เครื่องใช้เสมือนของ Microsoft Windows สำหรับการทดสอบโปรแกรมแยกตัวเอง ขอบคุณ!
Charles Engelke

4
@takeit สำหรับเครื่อง 64bit เราควรติดตั้งlib64stdc++6แทนหรือไม่?
พระโพธิสัตว์

@ พระโพธิสัตว์ฉันคิดว่าlib32stdc++6สำหรับเครื่อง 64 บิตที่ใช้ซอฟต์แวร์ 32 บิต สิ่งที่คล้ายกับ "เลเยอร์ความเข้ากันได้" เมื่อต้องการเรียกใช้ 64bit ( "แม่") ซอฟต์แวร์บนเครื่อง 64bit libstdc++6คุณเพียงแค่ต้อง (ลิงก์มีไว้สำหรับ Ubuntu 14.04 Trusty Tahr ฉันไม่พบลิงก์สำหรับ Ubuntu 10.10 Maverick Meerkat)
Franklin Yu

เยี่ยมมากแม้ว่าฉันจะพบปัญหานี้ในสถานการณ์อื่นที่ฉันพยายามสร้างซอร์สโค้ดของ Android แต่ก็พบปัญหาได้อย่างสมบูรณ์ ขอบคุณมาก !!! ls
oscarz

15

ฉันคิดว่าคุณกำลังใช้งาน Linux บนเครื่อง amd64 โฟลเดอร์ปฏิบัติการของคุณอยู่ใน (lib32 ) แนะนำปฏิบัติการ 32 บิตซึ่งต้องใช้ไลบรารี 32 บิต

สิ่งเหล่านี้ดูเหมือนจะไม่มีอยู่ในระบบของคุณดังนั้นคุณต้องติดตั้งด้วยตนเอง ชื่อแพคเกจขึ้นอยู่กับการกระจายของคุณสำหรับ Debian มันia32-libsสำหรับ libstdc++.<version>.i686Fedora


ฉันใช้ Linux บน Ubuntu 10.10
ammouna

จากนั้นคุณต้องการทำด้วยวิธี Debian และติดตั้งia32-libsหรือเปลี่ยนไปใช้ซอฟต์แวร์เวอร์ชัน 64 บิตที่คุณพยายามใช้
Fabian Knorr

ฉันได้รับการติดตั้งแพ็คเกจนี้แล้ว แต่ตอนนี้ฉันได้รับข้อผิดพลาดอื่น "กระบวนการฆ่าโดยสัญญาณ -7 E: แนบกับ pid 3874 ล้มเหลว: ไม่อนุญาตให้ใช้งาน"
ammouna

ดูเหมือนว่าคุณกำลังพยายามแนบดีบักเกอร์ / มอนิเตอร์ 64 บิตเข้ากับแอปพลิเคชัน 32 บิตหรือในทางกลับกัน? คุณควรพยายามรับคอมโพเนนต์ 64 บิตและสร้างไฟล์ปฏิบัติการ 64 บิต สิ่งนี้จะทำให้ชีวิตง่ายขึ้นมาก
Fabian Knorr

1
ฉันจะทำเช่นนี้ได้อย่างไร? ฉันเป็นผู้เริ่มต้นใช้งาน Linux และฉันไม่เข้าใจวิธีการแนบดีบักเกอร์ / จอภาพ 64 บิตเข้ากับแอปพลิเคชัน 32 บิต ช่วยอธิบาย
หน่อยได้ไหม

9

สำหรับการใช้งาน Fedora:

yum install libstdc++44.i686

คุณสามารถค้นหาเวอร์ชันที่รองรับโดยการรัน:

yum list all | grep libstdc | grep i686



1

/usr/local/cilk/bin/../lib32/pinbin เชื่อมโยงแบบไดนามิกกับไลบรารี libstdc ++ so.6 ซึ่งไม่มีอยู่อีกต่อไป คุณต้องคอมไพล์ Cilk ใหม่


แต่ libstdc ++ so.6 มีอยู่ในโฟลเดอร์ / usr / lib
ammouna

1
ใช่ แต่เนื่องจากเป็นแอปพลิเคชัน 32 บิตจึงต้องใช้/usr/lib32/libstdc++.so.6ไฟล์.
Fabian Knorr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.