C語言 之建立動態鏈接庫

下面我們建立一個動態鏈接庫。

回顧上篇文章講的建立靜態鏈接庫,我們把這幾個文件丟到一個新的目錄下:

makefile tiaoshen.c  mmc.h xu.c

你也可以自己建立新的文件,這裏不再贅述。

makefile文件中改成

all:

gcc tiaoshen.c -o tiaoshen.o -c -fPIC

gcc -o libtiaoshen.so tiaoshen.o -shared

-FPIC表示編譯的時候編譯成位置無關碼,然後可以被加載到任意地方去執行

-shared的意思是共享庫方式

之後就進行makefile的編譯(注意makefile裏的gcc前面的空白,是Tab鍵)


使用我們的鏈接庫:

你直接包含頭文件然後使用是不行的,一般你建立的 .so 文件不在它尋找的固定目錄下,有兩種方法可以解決

1、cp libtiaoshen.so /usr/lib即可,這是系統自帶的庫函數文件

2、使用環境變量export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:(後面跟上你的動態庫的路徑)

然後編譯:

gcc xu.c -o shen -ltiaoshen -L.

之後運行就可以了!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章