歡迎您光臨本站
註冊
首頁
搜尋
首頁
資訊
文檔
開源
問答
知識
專題
開源互助社區
>
文檔
>
Linux
關於Linux中的庫
←手機掃碼閱讀
火星人
@ 2014-03-26 ,
reply:0
soname
形式一般為lib
.so.
,以symbol link的方式存在於文件系統中,version的不同反映了介面的改變,其指向的實際文件的名字通常是在soname后加上.
.
。
ldd/ldconfig
一個程序/shared庫一般都要依賴其他的一些庫,這可以用ldd來查看,它列出了依賴的庫的soname,因為實際依賴是庫的介面,而soname正是反映了庫的介面信息。linux使用ELF作為可執行程序和庫的格式,這些依賴的庫的soname保存在ELF的某個fileld里。當一個可執行程序執行時,ld.so負責把它所依賴的shared庫載入到內存並鏈接,它按照以下順序尋找shared庫:
在LD_LIBRARY_PATH環境變數指定的目錄下
ld.so.cache文件該shared庫對應的文件
/usr/lib和/lib目錄下
ldconfig 建立或更新soname,並把其對應關係寫入緩存文件ld.so.cache以加快載入速度,ld.so將主要使用這個ld.so.cache來尋找庫文件,所以當拷貝shared庫到一個不是/usr/lib和/lib的目錄后,要運行ldconfig更新ld.so.cache以使ld.so能找到這個shared庫。ldconfig能夠建立和更新soname是因為ELF文件有一個field保存了其對應的soname。
ld
ld是GNU linker,是創建一個可執行程序/庫最後一步使用的工具。
-shared
創建一個shared library
-L
ld在一個目錄列表裡搜索要連接的archive文件,該選項添加指定目錄到預設目錄列表的前面。預設目錄列表依賴ld使用的模擬模式,gcc里有個選項-print-search-dirs可以列出當前系統的預設目錄列表。
-l
添加
文件到要連接的archive文件列表。ld將在搜索archive的目錄列表裡搜索libarchive.so文件,如果不存在則使用libarchive.a文件
-rpath-link
當用ld創建一個靜態可執行程序(non-shared, non-relocatable,不依賴其他shared library獨立運行)時,其輸入的shared library(直接依賴)可能又依賴另外的shared library,如果不把這種間接依賴的shared library也包括到靜態可執行程序里,其結果就不能獨立運行。這個option指定了搜尋這種required shared library的路徑,不過ld並不只是在該option指定的路徑搜索,具體ld搜索required shared library的各個位置和順序在man里有詳細的說明。
Tags:
linux
system
內核
Linux下使用SSH翻牆
非常全的linux面試筆試題及參考答案
本文將實現Windows Linux的異構環境
nagios配置——添加linux主機監控
讓Linux成為文件伺服器
linux系統日誌解析
Linux-PAM(Linux下的密碼認證和安全機制)系統管理員指南(中文版)
如何讓Linux成為文件伺服器
Linux Kernel 2.6x 本地溢出代碼 今天測試了一下,效果不錯
[原]關於區域網NTP伺服器與客戶端實現的方法
關於 KVM 虛擬機HA集群
Bugzilla + Oracle + Linux 安裝筆記
關於samba配置可跨路由共享的問題
Linux搭建自動虛擬主機
Linux中文件查找工具
[求助]!!!請教關於Apache吃資源的分析
Linux下的postfix安裝詳解
關於DSN配置--已經解決!
請教OSCAR關於C3 Tools的使用
關於別名解析的過程
關於DNS配置----已經解決!感謝大家的熱心幫助!!!
靜態庫和共享庫 庫的定位搜索路徑
我的bind9可以解析,但總有關於日誌的問題不能解決,問題如下:
關於Linux中的庫
請教關於配置DNS子域轉發
Linux configure參數解釋
linux下查看程序依賴的庫
鏈接文件和Linux中編譯安裝軟體包簡介
關於Linux GUI,GNOME,的一點閱讀心得
linux下安裝oracle
[
火星人
]
關於Linux中的庫
已經有
621
次圍觀
本文地址:
http://coctec.com/docs/linux/show-post-188105.html
熱門文章
VMware 虛擬機(linux)增加根目錄磁碟空間
Linux系統調用函數fork()用法詳解
Linux和Unix系統的關係和區別詳細介紹
linux下使用mount掛著網路磁碟
用ghost備份和還原Linux系統
Raspberry Pi:完美的家用伺服器
5款替代微軟Visio的開源免費軟體
5 款 Ubuntu 系統監控工具
如何查找 Linux 死機原因?
Df命令:查看Linux磁碟剩餘空間方法介紹
最新文章
CentOS使用expect批量遠程執行腳本和命令
3000字掃盲shell基礎知識(新手必備)
Linux 系統雙網卡綁定配置實現
在Ubuntu中實現人臉識別登錄的完整步驟
Linux下9種優秀的代碼比對工具推薦小結
Linux中fuser命令用法詳解
Linux系統使用Fuser命令的方法
Linux如何在Vim中更改顏色和主題
如何使用win10內置的linux系統啟動spring-boot項目
Linux 常用命令操作大全