Linux中的動態庫

2021-09-21 13:35:53 字數 667 閱讀 7541

編譯動態庫命令:

gcc  -shared  -fpic  -o  ***.so  ***.c

showone.c:

#include#include"myshow.h"

int myshow()

showtw.c:

#include#include"myshow.h"

int myshow()

編譯好之後,再把main函式編譯為可執行檔案:

#include #include"myshow.h"

int main()

}

(隨便鏈結了乙個庫)(-l只是在編譯的時候制定庫路徑)

然後執行:

可以看到所用的庫不一樣,執行結果也不一樣。

還可以用gcc命令直接把動態庫的路徑編譯到可執行檔案中。

方法是編譯中加-wl,rpath=***(路徑)

這樣就可以直接執行

linux中的動態庫

windows中的動態庫dll,程式要呼叫dll檔案時,要把dll檔案放到windows system32 路徑下,才可以連線到。在linux系統中,鏈結庫有預設的路徑,lib存放linux系統本身的動態庫。如果把動態庫放到 lib目錄,是可以鏈結到的。但是不建議,因為動態庫檔案可能和linux系統...

Linux中的動態庫與靜態庫

1 靜態庫 靜態函式庫,是函式執行前 編譯 就加到目標程式中去了。優點 1 程式大。2 鏈結時完整地拷貝至可執行檔案中,別多次使用就有多份冗餘拷貝。3 更新,部署,發布較為麻煩 2,動態庫 動態函式庫,是程式執行時 臨時 動態到目標程式中去 優點 1 執行慢 2 發布程式需要提供依賴的動態庫。以上部...

Linux中靜態庫與動態庫

在windows和linux下都存在著大量的庫,庫是什麼呢?本質上來說,庫時一種可執行 的二進位制形式,可以被作業系統載入記憶體執行。我們通常將一些公用函式寫成函式庫,所以庫是別人寫好的,現有的,成熟的,可以服用的 你可以使用但要必須得遵守許可協議。在我們現實開發過程中,不可能每乙份 都從頭編寫,當...