Linux下動態鏈結庫建立問題

2021-06-26 17:25:37 字數 436 閱讀 9667

1:將幾個需要編譯成動態鏈結庫的原始檔比編譯:例如有 test1.c test2.c main.c,那麼使用下面命令:gcc test1.c test2.c -fpic -shared -o libtest.so;注意裡面的兩個選項-fpic -shared

2:編譯main.c:  gcc -o main main.c -l ./ -itest;注意,-l只要尋找的.so檔案的路徑,-l代表要找的檔案,這裡注意test使用了隱式檔名,就是代表libtest.so,省略了lib和.so,要是有多個路徑用空格隔開。

這樣就編譯出了乙個可執行檔案main。但是這樣的話,main不知道去**尋找前面動態鏈結時的.so檔案,需要指定路徑,這裡可以在/etc/ld.so.conf.d   libc.conf檔案裡面新增自己的.so檔案所在的路徑

3:最後執行ldconfig使上面的路徑生效,在執行main就可以了

Linux下動態鏈結庫和靜態鏈結庫

第一部分 編譯過程 預處理過程,負責標頭檔案展開,巨集替換,條件編譯的選擇,刪除注釋等工作。gcc e表示進行預處理。編譯過程,負載將預處理生成的檔案,經過詞法分析,語法分析,語義分析及優化後生成彙編檔案。gcc s表示進行編譯。彙編,是將彙編 轉換為機器可執行指令的過程。通過使用gcc c或者as...

建立靜態鏈結庫 動態鏈結庫

下面的實操中的動態庫或者靜態庫名都用wujunwu 第一步 建立乙個源 建立靜態鏈結庫的源 include void func1 void int func2 int x,int y 第二步 建立乙個.件作為函式宣告 void func1 void intfunc2 int x,int y 第三步 ...

建立動態鏈結庫

要建立dll,就必須首先建立乙個或多個源 檔案,還有乙個連線檔案用來匯出函式。如果打算可以以載入時動態鏈結使用dll的話,還必須建立乙個導入庫。建立原始檔 dll的源 中包含了需匯出的函式及資料,還有內部函式及資料,另外可以有乙個可選的入口函式。你可以使用任意支援建立基於windows的dll工具來...