阐述Linux动态库的显式调用
闡述Linux動態庫的顯式調用
分類: Linux 2011-02-12 10:27 168人閱讀 評論(0) 收藏 舉報 linux測試nulllibrarypathgcc十年的發展,Linux系統已經趕上了微軟,于是很多人開始學習Linux時,學習Linux,你可能會遇到動態庫的顯式調用,這里將介紹動態庫的顯式調用的解決方法,在這里拿出來和大家介紹下。
顯式調用的含義是代碼出現庫文件名,用戶需要自己去打開和管理庫文件。其要點為:
⑴把dlfcn.h系統頭文件包含進來
⑵用dlopen函數打開庫文件,并指定打開方式
dllope的的第一個參數為共享庫的名稱,將會在下面位置查找指定的共享庫。
①環境變量LD_LIBRARY_PATH列出的用分號間隔的所有目錄。
②文件/etc/ld.so.cache中找到的庫的列表,由ldconfig命令刷新。
③目錄usr/lib。
④目錄/lib。
⑤當前目錄。
第二個參數為打開共享庫的方式。有兩個取值
①RTLD_NOW:將共享庫中的所有函數加載到內存
②RTLD_LAZY:會推后共享庫中的函數的加載操作,直到調用dlsym()時方加載某函數
⑶用dlerror()函數測試是否打開成功,并進行錯誤處理;
⑷用dlsym獲得函數地址,存放在一個函數指針中
⑸用獲得的函數指針進行函數調用。
⑹程序結束時用dlclose關閉打開的動態庫,防止資源泄露。
⑺用ldconfig工具把動態庫的路徑加到系統庫列表中
1、編寫測試文件
2、編譯測試文件
使用-ldl選項指明生成的對象模塊需要使用共享庫
gcc -o main -ldl main.c
執行完后就生成了一個main文件
3、執行測試程序
執行 ./main
輸出
test
說明成功。這就是Linux動態庫的顯式調用的介紹。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的阐述Linux动态库的显式调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基本阈值操作
- 下一篇: caffe与tensorflow框架下卷