เกิดข้อผิดพลาดขณะโหลดไลบรารี่ที่แชร์ไฟล์สั้นเกินไป


15

จากลูกค้าคนหนึ่งของฉันฉันได้รับใบสมัคร เมื่อฉันพยายามเรียกใช้ฉันพบข้อผิดพลาด

error while loading shared libraries: ./libvtkWidgets.so.5.4: file too short

ในโครงสร้างโครงการของฉันฉันเห็นดังต่อไปนี้:

-rwxrwxrwx  1 tomasz tomasz       20 2011-02-01 10:44 libvtkWidgets.so
-rwxrwxrwx  1 tomasz tomasz       22 2011-02-01 10:44 libvtkWidgets.so.5.4
-rwxrwxrwx  1 tomasz tomasz  2147103 2011-02-01 10:44 libvtkWidgets.so.5.4.2

ไลบรารีที่ใช้ร่วมกันของฉัน libvtkWidgets เสียหายหรือไม่ จะแก้ไขข้อผิดพลาดนั้นได้อย่างไร?


การทำงานsudo ldconfigจะช่วยให้คุณทราบปัญหาที่แน่นอน ("ไฟล์ *** ว่างเปล่าไม่ได้ตรวจสอบ" หรือ "*** ไม่ใช่ลิงก์สัญลักษณ์")
Yan Foto

คำตอบ:


19

อาจมีข้อผิดพลาดในการคัดลอก / แตกไลบรารี libvtkWidgets.so และ libvtkWidgets.so.5.4 ไม่ควรเป็นไฟล์ แต่เป็นลิงก์สัญลักษณ์ ลองทำสิ่งต่อไปนี้:

rm libvtkWidgets.so.5.4 libvtkWidgets.so
ln -s libvtkWidgets.so.5.4.2 libvtkWidgets.so.5.4
ln -s libvtkWidgets.so.5.4 libvtkWidgets.so

อย่างไรก็ตามคุณควรตรวจสอบว่าซอฟต์แวร์ที่คุณติดตั้งนั้นมีอยู่ในศูนย์ซอฟต์แวร์หรือไม่ หากไม่สามารถใช้ได้และหากการแก้ไขด้านบนไม่ทำงานคุณจะต้องติดต่อผู้ให้บริการแอปพลิเคชัน


1
ขอบคุณมากฉันทำผิดพลาดในการแยกไฟล์บน Windows และคัดลอกไฟล์ที่แตกไปยังเครื่องเสมือน Ubuntu ของฉัน นั่นเป็นเหตุผลว่าทำไมลิงก์สัญลักษณ์ทั้งหมดจึงหายไป
tommyk

ฉันกำลังสร้างส่วนขยาย C ++ ของฉันเองและแม้กระทั่งหลังจากที่ทำให้เป็นลิงก์สัญลักษณ์ปัญหายังคงอยู่ มีแคชที่ฉันไม่ทราบหรือไม่
noɥʇʎԀʎzɐɹƆ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.