編譯時連線與執行時鏈結及靜態庫鏈結

2021-07-28 03:19:44 字數 776 閱讀 1502

//本地編譯器動態庫編譯時鏈結

-l/lib

/usr/lib

/usr/local/lib

編譯時鏈結的話,能查到libname.so

且這個檔案要不是個link,要不就是實際的動態庫檔案,否則會報錯

說鏈結順序沒有意義,因為並不鏈結到檔案裡面去

注意:不包括ld_library_path與/etc/ld.so.conf.

//本地編譯器動態庫執行時鏈結

1. 編譯目標**時指定的動態庫搜尋路徑;-wl,-rpath,

2. 環境變數 ld_library_path 指定的動態庫搜尋路徑

3. 配置檔案 /etc/ld.so.conf 中指定的動態庫搜尋路徑

4. 預設的動態庫搜尋路徑 /lib

5. 預設的動態庫搜尋路徑 /usr/lib

//交叉編譯器動態庫編譯時鏈結

如果是交叉編譯器的話,例如可以在/opt/hisi-linux-nptl/arm-hisiv100-linux/arm-hisiv100-linux-uclibcgnueabi/lib這裡新增

//交叉編譯器動態庫執行時鏈結
//靜態庫編譯時鏈結

//靜態庫沒有執行時鏈結的概念,因為已經被鏈結進可執行檔案裡去了

-l/lib

/usr/lib

/usr/local/lib

順序暫不更新

iOS編譯時型別與執行時型別

首先我們來寫乙個物件 nsstring obj nsdata alloc init 一般來說我們寫完上面的 xcode會為我們提示乙個warning incompatible pointer types intializing nsstring with an expression of type ...

載入時動態鏈結及執行時動態鏈結,譯自MSDN

當前目錄 系統目錄。通過getsystemdirectory 函式可以得到。16位系統目錄。沒有函式可以獲取該目錄,但它是被搜尋的。windows me 98 95 目錄不存在 windows目錄。通過getwindowsdirectory 即可得到。path環境變數中所列目錄。當應用程式呼叫loa...

靜態鏈結 裝入時動態鏈結和執行時動態鏈結

靜態鏈結 經編譯後所得到的三個目標模組a b c,他們的長度分別為 l m n。在模組a中,有 一條語句call b,用於呼叫模組b。在模組b中,有一條語句call c,用於呼叫模組c。b和c都屬於外部 對相對位址進行修改 乙個裝入程式後,模組b和c的起始位址不再是0,而是l和l m,此時需修改b和...