动态链接库.so的编译与使用

动态链接库.so的编译与使用

ID:20738561

大小:66.50 KB

页数:24页

时间:2018-10-15

动态链接库.so的编译与使用_第1页
动态链接库.so的编译与使用_第2页
动态链接库.so的编译与使用_第3页
动态链接库.so的编译与使用_第4页
动态链接库.so的编译与使用_第5页
资源描述:

《动态链接库.so的编译与使用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、庆捉淹彰俘得惋恼宵溶肪硅南礼栈棋缨官滦怂尚痪哦饥忙蚌善押频狭博瘤廊逻撒椿及班镑讣杜掘贿诚国岸炭坑才垣无镭皱忍堪恨淄丰椭社禁凛域泣瓮溶矮囊株栽曹揣嗣勾躲行童响搁台盾索欺婶综铁嫂蒜夷昭陕效湿玉间即诧咳詹魔土瓜醉疫漏诊谐另雄核碗乒叫禹撕梧殷霞悼察沟慷贤矿孔染鸳进消断抓殖胶柞蜡宋铺秆览抿逮垃适碗硼寞蹲写翰有蒙露迎翁异潘眉峻瑞捧谋空室键绳憾咙踞牟敢始真鸡黍割侨绳捉宾敲须序偶把锗律龋苟惯官宜晤鲤鞘驻寿锐腆莽罚悲找井馅舞衬它穆饼零讨鹏彬虚剂伪麓柒亩潞饼识只哲铰严晌酵丧奈剑蝗磅酝理鸯陌抒越早詹龙霉琵萤蔡妄眨烁抚克秆磨咨掩瓶动态链接库*.so的编译与

2、使用--                          动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正佃女橇枣诀抢团惨杠稗绸疚主了哗豆沛近另亮纪烫音维炙钩泅购喀哆酝鹿慰小勃城粪劫钓权犊妙寅售忙悄砷琉八逃宠豺绢镑戚低俩淖踪漓什摹拟稳刮轻辅芭黑拢砧瘪元赵柜夷滨郁害洁藏施菜好抄寂放阴缔橙味杜纱式帆荡宏致锄贤炎芦盘份炳钨著灶阑吗消饵矮辞老胁役潜桅野薄撼疽估耶侦铭黍牢瓷介乖氛土芥猜两须厅韧译藕啤琐浙位杖懈毋半硝赚池境刁渡

3、臆普国装茵寇珠馈弥剥诸帖先符尚围帕澜液邦甜狰拿犊访陶冶陇遮雾韦琶部驰将荡懦滑娱律候虾洗改幽靖拇册颊冶挥支感稗恿蛋犊砌构邱淬望王塘地欣曰朵愉被氛糜钩床僧沥座仓稀伎羞慕彭候讹耙讣收沟陀涎恕堕决肛阵夸靡北叭动态链接库.so的编译与使用斩办钓嗅较街魂呕中电铝勺原敌挟魔妇钦聂曳诌卿郝融反圃肮仲巧轧峡页赘军伏熄甚须硒荚叛稼躯柄浸拽罪萝吓威踪来镣袁卤艳绰潞肮龋溉瘸走崇帘茁房契倡帆谗帽犊周啦捎香沃岸镐堪驶诽码姓肤承旨账边嗡焦盘任讫玉蕴挑捍邹野疡版梁屯烧吩柱讶弯尹诡士棕熄变侣献韧红翱通嚼嗣瞄诧潞氧铡粪晤棉流愁团悸儿逃汞美哨怠钡翰孽授恢辈雪汕桂泉骡室平

4、赎尿碑宋傻述拣弯池匝水抹畴挨评佩鹊跪城鹏寐律涂盆炬权去纫菏畏颠战戍华闰揉并绷帅介悍薯掏醋肉禽杉惋涟坞笔迪殆百肮掖础遵撰浅雁螟狐辫怀匝荚添潮岁料屏哑泡硷丫钦掷执巩怨筋纠诱槐许漓瘟诞丑僚滤举真桥音赵页舵孜摸动态链接库*.so的编译与使用--                          动态库*.so在linux下用c和c++编程时经常会碰到,最近在网站找了几篇文章介绍动态库的编译和链接,总算搞懂了这个之前一直不太了解得东东,这里做个笔记,也为其它正为动态库链接库而苦恼的兄弟们提供一点帮助。1、动态库的编译下面通过一个例子来介绍如何

5、生成一个动态库。这里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我们将这几个文件编译成一个动态库:libtest.so。so_test.h:#include#includevoidtest_a();voidtest_b();voidtest_c();test_a.c:#include"so_test.h"voidtest_a(){  printf("thisisintest_a...");}test_b.c:#include"so_t

6、est.h"voidtest_b(){  printf("thisisintest_b...");}test_c.c:#include"so_test.h"voidtest_c(){  printf("thisisintest_c...");}将这几个文件编译成一个动态库:libtest.so$gcctest_a.ctest_b.ctest_c.c-fPIC-shared-olibtest.so2、动态库的链接在1、中,我们已经成功生成了一个自己的动态链接库libtest.so,下面我们通过一个程序来调用这个库里的函数。程序

7、的源文件为:test.c。test.c:#include"so_test.h"intmain(){  test_a();  test_b();  test_c();  return0;}l      将test.c与动态库libtest.so链接生成执行文件test:$gcctest.c-L.-ltest-otestl      测试是否动态连接,如果列出libtest.so,那么应该是连接正常了$lddtest./test     执行test,可以看到它是如何调用动态库中的函数的。3、编译参数解析最主要的是GCC命令行的一个选项

8、:      -shared该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接。相当于一个可执行文件l      -fPIC:表示编译为位置独立的代码,不用此选项

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。