步驟
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
解決辦法:
exportld_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...