linux生成動態鏈結庫

2022-05-04 03:48:08 字數 615 閱讀 5499

步驟

1、建立動態鏈結庫

建立caculate.c  caculate.h兩個檔案

編譯生成libcac.so檔案:gcc -shared -fpic caculate.c -o libcac.so

2、建立測試程式 

建立 main.pc檔案

編譯生成可執行檔案:gcc main.c -o main -l ./ -lcac(其中-l指明動態鏈結庫的路徑,-l後是鏈結庫的名稱,省略lib)

3、呼叫可執行程式

./main

注意:編譯時候經常粗線的乙個錯誤:

error while loading shared libraries: libmysqlclientso.so.0: cannot open shared object file: no such file or directory

解決辦法:

export

ld_library_path=/usr/local/lib

/usr/local/lib為動態鏈結庫所在的目錄

null

生成動態鏈結庫

fpic pic就是position independent code pic使.so檔案的 段變為真正意義上的共享 如果不加 fpic,則載入.so檔案的 段時,段引用的資料物件需要重定位,重定位會修改 段的內容,這就造成每個使用這個.so檔案 段的程序在核心裡都會生成這個.so檔案 段的copy...

GCC 生成動態鏈結庫

linux 下動態鏈結庫 shared object file,共享物件檔案 的檔案字尾為.so,它是一種特殊的目標檔案 object file 可以在程式執行時被載入 鏈結 進來。使用動態鏈結庫的優點是 程式的可執行檔案更小,便於程式的模組化以及更新,同時,有效記憶體的使用效率更高。如果想建立乙個...

Linux C 生成動態鏈結庫

在linux c中生成動態庫方法如下 1,測試程式 1 生成動態庫的源 檔案test.c include stdio.h int get result int firstnum,int secondnum 其介面檔案為 ifndef test h define test h int get resu...