日韩性视频-久久久蜜桃-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下动态链接库调用的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 男女啪啪免费 | 久久婷婷成人综合色 | 日韩a∨| 日本成人毛片 | 亚洲欧美日韩中文在线 | 醉酒壮男gay强迫野外xx | 成人免费超碰 | 中文字幕第六页 | 风间由美一区二区 | 中国精品毛片 | 亚洲av鲁丝一区二区三区 | 天天干夜夜操 | 日韩精品麻豆 | 涩涩久久 | 国产农村妇女毛片精品久久 | 中文 欧美 日韩 | 一区一区三区产品乱码 | 法国少妇愉情理伦片 | 九草在线观看 | 怡红院成永久免费人全部视频 | 天天av天天爽 | 亚洲AV无码成人片在线观看 | 成人午夜视频精品一区 | 在线观看黄 | 在线不卡毛片 | 久久精品国产免费 | 美攻壮受大胸奶汁(高h) | 黄色片女人 | 99久久精品无免国产免费 | 中文字幕色图 | 每日av更新| 自拍偷拍五月天 | 在线不卡毛片 | 色妞网站 | 欧美性大战xxxxx久久久 | 欧美又大粗又爽又黄大片视频 | 欧美香蕉 | 成人午夜在线免费观看 | 在线观看黄色小视频 | 91视频青青草 | 日本大尺度吃奶做爰久久久绯色 | 欧美一级免费 | 免费一级淫片aaa片毛片a级 | 国产精品黄色在线观看 | 关之琳三级全黄做爰在线观看 | 亚洲精品456 | heyzo北岛玲在线播放 | 91人人视频 | 丰满人妻一区二区三区免费 | 久久99久久98精品免观看软件 | 中文字幕亚洲一区二区三区五十路 | 午夜影院网站 | 欧美日韩国产专区 | 国产麻豆剧果冻传媒白晶晶 | 亚洲精品av中文字幕在线在线 | 无码精品久久久久久久 | 亚洲av综合色区无码一二三区 | 人妻少妇精品中文字幕av蜜桃 | 日本中文字幕高清 | 日批在线观看 | 9久久精品 | 日本美女一级片 | 国产一二三四五区 | 日韩一级淫片 | 国产高清日韩 | 中文字幕一区2区3区 | 亚洲成人自拍视频 | 91文字幕巨乱亚洲香蕉 | 香蕉av一区二区 | 草逼视频免费看 | 四虎影视免费永久观看在线 | 国产日韩一区二区三区在线观看 | 青青草在线播放 | 国产精品人人妻人人爽人人牛 | 精品三级在线观看 | 蜜桃视频成人在线观看 | 91色伦 | brazzers欧美一区二区 | 中文字幕影片免费在线观看 | 激情av在线 | 96超碰在线 | 91精品国产综合久久精品 | 免费在线网站 | 国产色图视频 | 四季av在线一区二区三区 | a∨视频 | 麻豆av一区二区三区久久 | 人人人妻人人澡人人爽欧美一区 | 在线视频亚洲欧美 | 免费在线视频你懂的 | 91亚洲精品久久久蜜桃借种 | 香蕉久久网 | 成人av影视在线 | 亚洲av无一区二区三区怡春院 | www.成人免费 | 在线不卡毛片 | 日本免费不卡视频 | 亚洲天堂网站在线 | 欧美国产一区二区在线观看 |