Linux下的動態庫和靜態庫

2021-05-27 17:05:39 字數 906 閱讀 6114

靜態庫:程式編譯時載入,可執行程式體積大。一般命名為lib***x.a。

動態庫:程式執行時載入,可執行程式體積小。一般命名為lib***x.so.1.3。 【***x一般指庫名,如libxml2、tinyxml等】

動態庫一般預設安裝在/lib/或者/usr/lib/或者/usr/local/lib下。

如果安裝的庫不在這三個目錄,則可以把該庫的路徑加入到/etc/ld.so.conf檔案中,然後執行ldconfig命令使其生效。

檢視所有的動態庫:ldconfig -v

檢視乙個可執行檔案依賴的動態庫: ldd

檢視動態庫是否沒有存在:ldd  *** | grep "not found"   【***是可執行檔案】

檢視是否含有某動態庫:ldconfig  -v | grep ***x

加入庫路徑: -l /usr/lib

加入庫檔案: -l***x 【***x一般指庫名】

加入標頭檔案路徑:-i /usr/include

到/etc目錄底下,可以在 ld.so.conf直接另起一行,加入/usr/local/lib/cppunit。或者跑到 ld.so.conf.d資料夾底下,新建乙個檔案cppunit.conf,然後加入include /usr/local/lib/cppunit。檔名其實取什麼都無所謂,主要是要以.conf結尾就行。另外要不要加include,我也不打算做實驗了,我是加了。

linux下的動態庫和靜態庫

1 使用gcc建立和使用靜態庫 1 gcc o mylib.o c mylib.c 生成o檔案 2 ar rcs libmylib.a mylib.o 生成a檔案 c create的意思 r replace的意思,表示當插入的模組名已經在庫中存在,則替換同名的模組。3 cp libmylib.a u...

Linux下的動態庫和靜態庫

1 使用gcc建立和使用靜態庫 1 gcc o mylib.o c mylib.c 生成o檔案 2 ar rcs libmylib.a mylib.o 生成a檔案 c create的意思 r replace的意思,表示當插入的模組名已經在庫中存在,則替換同名的模組。3 cp libmylib.a u...

linux下檢視動態庫和靜態庫

靜態庫用ar t yourfile 動態庫用 nm d yourfile 下面是ar和nm命令的一些引數說明 1.ar基本用法 ar命令可以用來建立 修改庫,也可以從庫中提出單個模組。庫是一單獨的檔案,裡面包含了按照特定的結構組織起來的其它的一些檔案 稱做此庫檔案的member 原始檔案的內容 模式...