生成命令:
ld helloworld-lib.o -o helloworld-lib.out -dynamic-linker /lib/ld-linux.so.
2-lc -m elf_i386
使用ldd檢視鏈結檔案位置
ldd .
/helloworld-lib
輸出: linux-gate.so.1(
0xf7fb8000
) libc.so.6=
>
/lib32/libc.so.6(
0xf7dbf000
)/lib/ld-linux.so.2(
0xf7fb9000
)
原型int
# 將.o 檔案鏈結為共享庫
ld -shared write-record.o read-record.o -o librecord.so
# 動態鏈結到這個庫
ld write-records.o -o write-records.out -l .
-dynamic-linker /lib/ld-linux.so.
2-lrecord
# 執行時 設定環境變數
ld_library_path=
. export ld_library_path
# then
./write-records.out
共享庫 動態庫
動態庫的命名規則 lib 庫的名字 so libmyname.so 動態庫的建立和使用 共享庫 步驟一 生成對應的.o檔案 c o gcc fpic c c i include 生成與位置無關的.o檔案 fpic 與位置無關 步驟二 將生成的.o檔案打包成動態庫.so檔案 gcc shared o ...
QT Creator使用共享庫(一)建立共享庫
最近使用qt的移動裝置要呼叫個加密的.so,在前人 上折騰了n久也沒出來,終於自己照著幫助一步步作了一下,在此記下一筆。使用的工具 qt creator 測試環境 win 7,qt平台的外設 首先我們寫個共享的庫檔案 1.建立c 庫,選擇共享庫 2.在標頭檔案裡加上個方法,並在自動生成的類裡也加上個...
靜態庫和共享庫
建立和使用靜態庫 1 建立目錄 mkdir p test sub 2 在子目錄sub 下編寫hello.c和hello.h hello.c include include hello.h void hello hello.h include void hello 4 在主目錄test 下編寫main...