生成動態鏈結庫,解決動態鏈結庫連線失敗問題

2021-10-04 23:18:42 字數 592 閱讀 5119

目錄還是include存放標頭檔案

lib存放動態鏈結庫

src存放原始檔

g++ -fpic -c *.cpp -i../include
g++ -shared -o libmycalc.so *.o
注意:-l後是庫位址,-l後是庫名.

我們剛剛生成的庫是libmycalc.so,可以直接寫全名.so

如果不想加.so就要去掉lib字首,不然命名會自動加上lib字首

解決方法:

export ld_library_path=目前庫路徑

方法2:

到/etc下找到ld.so.conf檔案

加入一行

sudo ldconfig //使配置生效

生成動態鏈結庫

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

動態鏈結庫 靜態鏈結庫

包含標頭檔案和庫 idir 指定編譯查詢標頭檔案的目錄,常用於查詢第三方的庫的標頭檔案,例 gcc test.c i.inc o test。ldir 指定鏈結時查詢lib的目錄,常用於查詢第三方庫。llibrary 指定額外鏈結的lib庫 巨集定義 dmacro 以字串 1 預設值 定義 macro...

靜態鏈結庫 動態鏈結庫

庫是寫好的現有的,成熟的,可以復用的 現實中每個程式都要依賴很多基礎的底層庫,不可能每個人的 都從零開始,因此庫的存在意義非同尋常。本質上來說庫是一種可執行 的二進位制形式,可以被作業系統載入記憶體執行。庫有兩種 靜態庫 a lib 和動態庫 so dll windows上對應的是.lib dll ...