Apa itu file .so?

45

Saya mengalami masalah dengan Flash di bawah ubuntu dan akan mencoba dan memutakhirkan ke rilis Flash 10.1 Alpha.

Masalahnya adalah itu datang sebagai file .so, dan saya tidak dapat menemukan informasi apa ini.

John Moffitt
sumber
1
Poster lain sudah menjawab pertanyaan Anda, jadi tidak ada gunanya bagi saya untuk menambahkan teks lain yang pada dasarnya identik. Saya menarik perhatian Anda pada bug ini ( bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/… ) karena mungkin gejalanya mirip dan Anda ingin melihatnya di sana.
mac
1
Hampir lupa: dalam deskripsi bug yang ditautkan di atas, ada juga solusi yang menyelesaikan masalah (komentar # 16). Semoga berhasil!
mac

Jawaban:

60

File .so adalah file perpustakaan yang dikompilasi. Itu adalah singkatan dari "Shared Object" dan analog dengan Windows DLL.

Seringkali, file paket akan menempatkan ini di bawah / lib atau / usr / lib atau tempat serupa ketika mereka diinstal. Jika Anda mengekstrak file .so ke lokasi di $ LD_LIBRARY_PATH Anda, sebuah program yang membutuhkan pustaka harus dapat menggunakannya.

Idealnya, baca dokumentasi yang menyertainya untuk memastikan bahwa itu di lokasi yang tepat.

Jika Anda menjalankan perintah seperti locate adobe-flashplugindari Terminal, Anda mungkin melihat beberapa pustaka dengan nama yang sama.

Andrew Flanagan
sumber
2
Kecuali jika Ubuntu melakukan hal yang sama sekali berbeda dari penghubung dinamis Linux lainnya, penghubung dinamis tersebut tidak mencari path ($ PATH), tetapi mencari set path yang tetap serta direktori yang ditentukan dalam $ LD_LIBRARY_PATH. Lihat halaman manual untuk ld.so dan ldconfig untuk lebih jelasnya.
Chris Cleeland
Kedengarannya benar - terima kasih ... $ LD_LIBRARY_PATH bukan $ PATH. :-)
Andrew Flanagan
1
/ usr / lib dan / lib jauh lebih umum daripada / var / lib. Sebenarnya, cukup jarang menempatkan perpustakaan di / var / lib.
qedi
Maaf - terburu-buru. :-) Saya akan memperbaikinya ...
Andrew Flanagan
Oke .. Mari kita bayangkan saya punya file .so ... Apa yang harus saya "gunakan"?
Pitto
10

Ada dua tipe pustaka Linux C / C ++ yang bisa dibuat. Itu adalah perpustakaan statis (.a) dan perpustakaan objek beling terkait secara dinamis (.so)

Ketika datang ke (.so) , hanya ada satu bentuk perpustakaan ini tetapi dapat digunakan dalam dua cara.

1) Ditautkan secara dinamis pada saat dijalankan tetapi secara statis sadar. Perpustakaan harus tersedia selama fase kompilasi / tautan. Objek yang dibagikan tidak termasuk ke dalam komponen yang dapat dieksekusi tetapi terkait dengan eksekusi.

2) Dinamis dimuat / dibongkar dan ditautkan selama eksekusi (yaitu plug-in browser) menggunakan fungsi sistem pemuat tautan dinamis.

Biasanya file paket akan menempatkan file ".so" di / lib atau / usr / lib saat menginstal.

Erandi
sumber