ไฟล์. so คืออะไร


45

ฉันมีปัญหากับ Flash ภายใต้ ubuntu และกำลังจะลองและอัปเกรดเป็น Flash 10.1 ของ Alpha

ปัญหาคือมันมาเป็นไฟล์. so และฉันไม่สามารถหาข้อมูลใด ๆ ได้ว่ามันคืออะไร


1
ผู้โพสต์คนอื่นได้ตอบคำถามของคุณแล้วดังนั้นจึงไม่มีประเด็นที่ฉันจะเพิ่มข้อความที่เหมือนกันอย่างมีนัยสำคัญอีก ฉันดึงดูดความสนใจของคุณในข้อผิดพลาดนี้ ( bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/ ...... ) เนื่องจากอาการของคุณอาจจะคล้ายกันและคุณอยากจะดูที่นั่น
แม็ค

1
เกือบลืมไปแล้ว: ในคำอธิบายข้อผิดพลาดที่ลิงก์ด้านบนมีวิธีแก้ไขปัญหาที่จะแก้ปัญหาได้ (ความคิดเห็นที่ 16) ขอให้โชคดี!
แม็ค

คำตอบ:


60

ไฟล์. so เป็นไฟล์ไลบรารีที่คอมไพล์แล้ว มันย่อมาจาก "Shared Object" และคล้ายกับ Windows DLL

บ่อยครั้งที่ไฟล์แพ็กเกจจะวางเหล่านี้ภายใต้ / lib หรือ / usr / lib หรือสถานที่ที่คล้ายกันเมื่อพวกเขาติดตั้ง หากคุณแตกไฟล์. so ไปยังตำแหน่งใน $ LD_LIBRARY_PATH ของคุณโปรแกรมที่ต้องใช้ไลบรารีควรจะสามารถใช้งานได้

เป็นการดีที่จะอ่านเอกสารประกอบเพื่อให้แน่ใจว่ามันอยู่ในตำแหน่งที่ถูกต้อง

หากคุณเรียกใช้คำสั่งเช่นlocate adobe-flashpluginจากเทอร์มินัลคุณอาจเห็นบางไลบรารีที่มีชื่อคล้ายกันอยู่


2
เว้นแต่ Ubuntu จะทำสิ่งที่แตกต่างจากตัวเชื่อมโยงแบบไดนามิกอื่น ๆ ตัวเชื่อมโยงแบบไดนามิกจะไม่ค้นหาเส้นทาง ($ PATH) แต่จะค้นหาเส้นทางที่กำหนดตายตัวเช่นเดียวกับไดเรกทอรีที่ระบุใน $ LD_LIBRARY_PATH ดู man pages สำหรับ ld.so และ ldconfig สำหรับรายละเอียดเพิ่มเติม
Chris Cleeland

เสียงถูกต้อง - ขอบคุณ ... $ LD_LIBRARY_PATH ไม่ใช่ $ PATH :-)
Andrew Flanagan

1
/ usr / lib และ / lib พบได้บ่อยกว่า / var / lib ที่จริงแล้วมันค่อนข้างยากที่จะใส่ไลบรารี่ใน / var / lib
qedi

ขออภัย - รีบร้อน :-) ฉันจะแก้ไขให้ถูกต้อง ...
แอนดรูฟลานาแกน

ตกลง .. ลองจินตนาการว่าฉันมีไฟล์. so ... ฉันต้อง "ใช้" มันอะไร
Pitto

10

มีไลบรารี Linux C / C ++ สองชนิดที่สามารถสร้างได้ เหล่านี้คือไลบรารีคงที่ (.a)และไลบรารีวัตถุชิ้นหนึ่งที่เชื่อมโยงแบบไดนามิก (.so)

เมื่อมาถึง(.so)มีเพียงรูปแบบเดียวของไลบรารีนี้ แต่สามารถใช้ได้สองวิธี

1) เชื่อมโยงแบบไดนามิกในเวลาทำงาน แต่ทราบแบบคงที่ ไลบรารีต้องพร้อมใช้งานในระหว่างคอมไพล์ / เฟสลิงก์ วัตถุที่ใช้ร่วมกันจะไม่รวมอยู่ในองค์ประกอบที่ปฏิบัติการได้ แต่จะเชื่อมโยงกับการดำเนินการ

2) โหลด / ยกเลิกการโหลดแบบไดนามิกและเชื่อมโยงระหว่างการดำเนินการ (เช่นเบราว์เซอร์ปลั๊กอิน) โดยใช้ฟังก์ชั่นระบบโหลดลิงค์แบบไดนามิก

โดยปกติไฟล์แพ็กเกจจะวางไฟล์ ".so" ใน / lib หรือ / usr / lib เมื่อทำการติดตั้ง


3

มันเป็นไลบรารีวัตถุที่แชร์ที่เชื่อมโยงแบบไดนามิกซึ่งคล้ายกับไฟล์. dll ใน Windows

นี่คือสองสามโพสต์สำหรับติดตั้ง Flash 10 ใน Ubuntu x64 และ x86:

ตรวจสอบให้แน่ใจว่าคุณได้ถอนการติดตั้ง Flash เวอร์ชันก่อนหน้านี้ก่อนทำการติดตั้ง 10

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