Một tập tin .so là gì?


45

Tôi đang gặp sự cố với Flash trong Ubuntu và sẽ thử nâng cấp lên bản phát hành Alpha 10.1 của Alpha.

Vấn đề là nó xuất hiện dưới dạng tệp .so và tôi không thể tìm thấy bất kỳ thông tin nào về việc này là gì.


1
Các poster khác đã trả lời câu hỏi của bạn, vì vậy không có lý do gì để tôi thêm một văn bản giống hệt nhau. Mặc dù vậy, tôi thu hút sự chú ý của bạn về lỗi này ( bug.launchpad.net/ubfox/+source/flashplugin-nonfree/+orms/ trộm ) vì có thể các triệu chứng của bạn tương tự nhau và bạn muốn xem xét ở đó.
mac

1
Hầu như quên: trong mô tả lỗi được liên kết ở trên, cũng có một cách giải quyết để giải quyết vấn đề (nhận xét # 16). May mắn nhất!
mac

Câu trả lời:


60

Một tập tin .so là một tập tin thư viện được biên dịch. Nó là viết tắt của "Đối tượng được chia sẻ" và tương tự như Windows DLL.

Thông thường, các tệp gói sẽ đặt chúng dưới / lib hoặc / usr / lib hoặc một số nơi tương tự khi chúng được cài đặt. Nếu bạn trích xuất một tệp .so đến một vị trí trong $ LD_LIBRARY_PATH của bạn, một chương trình yêu cầu thư viện sẽ có thể sử dụng tệp đó.

Tốt nhất, hãy đọc tài liệu đi kèm để đảm bảo rằng nó ở đúng vị trí.

Nếu bạn chạy một lệnh như locate adobe-flashplugintừ Terminal, bạn có thể thấy một số thư viện có tên tương tự hiện có.


2
Trừ khi Ubuntu thực hiện mọi thứ hoàn toàn khác với các trình liên kết động Linux khác, trình liên kết động không tìm kiếm đường dẫn ($ PATH), mà chỉ tìm kiếm một bộ đường dẫn cố định cũng như các thư mục được chỉ định trong $ LD_LIBRARY_PATH. Xem các trang hướng dẫn cho ld.so và ldconfig để biết thêm chi tiết.
Chris Cleeland

Điều đó nghe có vẻ đúng - cảm ơn ... $ LD_LIBRARY_PATH chứ không phải $ PATH. :-)
Andrew Flanagan

1
/ usr / lib và / lib phổ biến hơn nhiều so với / var / lib. Trên thực tế, việc đặt một thư viện vào / var / lib là khá hiếm.
qedi

Xin lỗi - đã vội vàng. :-) Tôi sẽ sửa nó ...
Andrew Flanagan

Ok .. Hãy tưởng tượng tôi có một tập tin .so ... Tôi cần gì để "sử dụng" nó?
Pitto

10

Có hai loại thư viện Linux C / C ++ có thể được tạo. Đó là các thư viện tĩnh (.a)các thư viện đối tượng shard được liên kết động (.so)

Khi nói đến (.so) , chỉ có một dạng của thư viện này nhưng nó có thể được sử dụng theo hai cách.

1) Liên kết động tại thời gian chạy nhưng nhận thức tĩnh. Các thư viện phải có sẵn trong giai đoạn biên dịch / liên kết. Các đối tượng chia sẻ không được bao gồm trong thành phần thực thi mà được gắn với thực thi.

2) Tự động tải / không tải và được liên kết trong khi thực hiện (tức là trình cắm trình duyệt) bằng cách sử dụng các chức năng hệ thống của trình tải liên kết động.

Thông thường các tệp gói sẽ đặt các tệp ".so" trong / lib hoặc / usr / lib khi cài đặt.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.