日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Linux下动态链接库调用

發布時間:2025/3/15 linux 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux下动态链接库调用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Linux下動態鏈接庫調用

3人閱讀 評論(0) 收藏 編輯 刪除

Linux下動態鏈接庫調用??

2013-06-08 20:52:48|??分類:集成開發環境相關 |舉報|字號?訂閱

Linux下的靜態鏈接庫,做起來比較容易,只要將目標文件用ar打包就可以,下面寫一下動態鏈接庫的制作和使用方法,完全是根據個人理解和經驗總結,有不對的地方還請大家指正。

動態鏈接庫的生成:

代碼上與寫靜態鏈接庫沒什么區別,主要是在編譯時,以兩個文件舉例:

/*mylib.h*/
void?Print();

/*mylib.c*/
#include?
<stdio.h>
#include?
"mylib.h"

void?Print()
{
????printf(
"This?is?in?mylib\n");
}

編譯方法如下:

gcc -fpic -shared mylib.c -o mylib.so

此時將生成mylib.so動態鏈接庫文件。

動態鏈接庫在使用時,分為“隱式調用”和“顯式調用”兩種。

如果是隱式調用,則與靜態庫的使用方法差不多,注意需要包含導出函數的頭文件,即mylib.h:

#include?<stdio.h>
#include?
"mylib.h"

int?main()
{
????Print();
}

編譯方法:

gcc -o main main.c -L./ mylib.so

注意要加上動態鏈接庫的搜索路徑,否則編譯器只會到系統路徑中去尋找。



顯式調用的方式,不必包含mylib.h,但是需要增加幾個系統調用:

#include?<stdio.h>
#include?
<dlfcn.h>?//?顯式加載需要用到的頭文件

int??main()
{
????
void?*pdlHandle?=?dlopen("./mylib.so",?RTLD_LAZY);?//?RTLD_LAZY?延遲加載
????
if(?pdlHandle == NULL?)
????{
????????printf(
"Load?mylib?failed!\n")
????????
return?1;
????}

????
void?(*Print)()?=?dlsym(pdlHandle,?"Print");?//?定位動態鏈接庫中的函數
????if(?!Print?)
????{
????????pszErr?
=?dlerror();
????????printf(
"Find?symbol?failed!%s\n",?pszErr);
????????dlclose(pdlHandle);
????????
return?1;
????}

????Print();?
//?調用動態鏈接庫中的函數

????dlclose(pdlHandle);?
//?系統動態鏈接庫引用數減1

????
return?0;
}

另外cpp的庫在使用這種方式時要用extern “C”聲明下,

對于cpp,類可以在函式中作為局部對象調用,如果想使用庫中聲明的類,則要以返回值的形式來產生了。


可以看到,顯式調用的代碼看上去要復雜很多,但是卻比隱式調用要靈活,我們不必在編譯時就確定要加載哪個動態鏈接庫,可以在運行時再確定,甚至重新加載。

看一下顯式調用的編譯方式:

gcc -ldl -o main main.c

注意要添加-ldl選項,以使用顯式調用相關的函數調用。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Linux下动态链接库调用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 天天干夜夜 | 伦av综合一区 | 亚洲乱熟女一区二区 | 欧美日韩黄 | 免费看久久 | 日韩精品第1页 | 日韩在线色 | 欧美aaaa视频 | 黄色小毛片 | 中文字幕在线精品 | 欧美黄色图片 | 超碰人人草 | 99视频国产精品 | 亚洲欧美不卡 | 国产调教在线观看 | 成人日皮视频 | jizz日本免费 | 九九天堂网 | 日本美女全裸 | 亚洲资源在线 | 草草影院在线观看 | av资源网址 | 牛牛视频在线观看 | 久久久久久久中文字幕 | 日韩精品在线观看中文字幕 | www.亚色 | 欧美精品乱码 | 久久久免费电影 | 精品在线免费播放 | 欧美色呦呦 | 国产精品人人做人人爽 | 婷婷看片 | 五月开心播播网 | 国产大片一区 | 青青青草视频在线观看 | 99热日韩| 91人人视频| 91视频入口| 欧美日韩在线网站 | 免费大片黄在线观看视频网站 | 精品国产视频 | 成年人网站黄 | 久久视频精品在线 | 国内视频一区二区 | 在线天堂视频 | 欧美性受xxxx狂喷水 | 精品国产一区二区三区四区阿崩 | 国产 日韩 欧美在线 | 电影91久久久 | 国产精品成人aaaa在线 | 91精品国产自产精品男人的天堂 | 自拍色图 | 亚洲成色在线 | 青青草伊人久久 | 亚洲欧美日韩中文字幕在线观看 | av在线高清观看 | 99这里有精品视频 | 久久综合伊人77777麻豆最新章节 | www亚洲精品 | 国产三级视频在线播放 | 97视频免费| 亚洲精品久久夜色撩人男男小说 | 高潮av在线| 亚洲av无码国产精品麻豆天美 | 精品国产九九九 | 天天av天天 | 亚洲精品一区二区三区影院忠贞 | 成人一区二 | 欧美日韩亚洲色图 | 法国空姐在线观看完整版 | 国产又大又粗又爽的毛片 | 日本人妻换人妻毛片 | 伊人免费在线观看 | 永久免费的网站入口 | 欧美成人精品一区二区男人看 | 日本少妇吞精囗交视频 | 国内精品免费 | 欧美人与禽猛交乱配视频 | 日本www高清 | 欧美xxxx18国产 | 亚洲一级网| 自拍偷拍亚洲天堂 | 男人猛进女人爽的大叫 | 爱爱爱网 | 久久禁| 日韩av大全 | 91重口味| 亚洲熟妇无码另类久久久 | 成人精品国产 | 欧美精品一区三区 | 992tv人人草 国产第6页 | 亚洲αv | 国产影视av | 国产精品无码一区二区三区在线看 | 国产91精品久久久久久久网曝门 | 日韩一级视频在线观看 | 免费看片网站91 | 天堂av2014| 人妻 日韩精品 中文字幕 |