gcc ldl 選項作用

2021-10-09 17:05:06 字數 588 閱讀 2401

如果你的程式中使用dlopen、dlsym、dlclose、dlerror 顯示載入動態庫,需要設定鏈結選項 -ldl

載入動態鏈結庫,首先為共享庫分配物理記憶體,然後在程序對應的頁表項中建立虛擬頁和物理頁面之間的對映。

你可以認為系統中存在一種引用計數機制, 每當乙個程序載入了共享庫(在該程序的頁表中進行一次對映),引用計數加一;

乙個程序顯式解除安裝(通過dlclose等)共享庫或程序退出時,引用計數減 一,

當減少到0時,系統解除安裝共享庫。

開啟動態鏈結庫:dlopen,函式原型void *dlopen (const char *filename, int flag); dlopen用於開啟指定名字(filename)的動態鏈結庫,並返回操作控制代碼。

關閉動態鏈結庫:dlclose,函式原型為: int dlclose (void *handle); dlclose用於關閉指定控制代碼的動態鏈結庫,只有當此動態鏈結庫的使用計數為0時,才會真正被系統解除安裝。

動態庫錯誤函式:dlerror,函式原型為: const char *dlerror(void); 當動態鏈結庫操作函式執行失敗時,dlerror可以返回出錯資訊,返回值為null時表示操作函式執行成功。

gcc D選項的作用

gcc d選項在man中的說明如下 簡單點說,加上 d選項就是在編譯時增加對 d後面的巨集的定義。來看個簡單的例子吧,源程式 a.c 如下 cpp include intmain intargc,char argv 編譯及輸出如下 root test 9 gcc dmydebug g o a1 a....

gcc D選項的作用

簡單點說,加上 d選項就是在編譯時增加對 d後面的巨集的定義。來看個簡單的例子吧,源程式 a.c 如下 cpp include intmain intargc,char argv 編譯及輸出如下 root test 9 gcc dmydebug g o a1 a.c 1 root test 11 a...

gcc D選項的作用

簡單點說,加上 d選項就是在編譯時增加對 d後面的巨集的定義。來看個簡單的例子吧,源程式 a.c 如下 include int main int argc,char argv 編譯及輸出如下 root test 9 gcc dmydebug g o a1 a.c 1 root test 11 a1 ...