游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

静态链接与动态链接(Linux)

  前言
  上一篇分享了静态链接与动态链接的实验(Windows下)。这一篇分享Linux下的笔记,同时对上一篇笔记做一个补充。
  首先,我们把静态链接与动态链接做一个这样子的比喻:
  把链接过程看做我们平时学习时做笔记的过程。我们平时学习时准备一本笔记本专门记录我们的学习笔记,比如在某本书的某一页上看到一个很好很有用的知识,这时候我们有两种方法记录在我们的笔记本上,一种是直接把那一页的内容全部抄写一遍到笔记本上(静态链接);另一种是我们在笔记本上做个简单的记录(动态链接),比如写上:xxx知识点在《xxx》的xxx页。
  从这两种方法中我们可以很清楚地知道两种方式的特点,第一种方式的优点就是我们在复习的时候就很方便,不用翻阅其它书籍了,但是缺点也很明显,就是占用笔记本的空间很多,这种方法很快就把我们的笔记本给写满了。第二种方式的优点就是很省空间,缺点就是每当我们复习的时候,手头上必须备着相关的参考书籍,比如我们去教室复习的时候,就得背着一大摞书去复习,这样我们复习的效率可能就没有那么高了。
  这对应到我们的动态链接与静态链接上是不是就很好理解了:
  静态链接与动态链接的主要优缺点
  (1)静态链接的优缺点:
  优点:代码装载速度快,执行速度略比动态链接库快;
  缺点:使用静态链接生成的可执行文件体积较大,包含相同的公共代码,造成浪费。
  (2)动态链接的优缺点:
  优点:生成的可执行文件较静态链接生成的可执行文件小;
  缺点:速度比静态链接慢;
  动态、静态链接实验
  我们先编写如下代码(共三个文件):
  文件1(main。c):includetest。hvoidprinthello(void){printf(helloworld);}
  文件2(test。c):ifndefTESTHdefineTESTHincludestdio。hvoidprinthello(void);endif
  文件3(test。h):ifndefTESTHdefineTESTHincludestdio。hvoidprinthello(void);endif
  1、动态链接实验
  首先,将源文件生成目标文件(。o),命令:gcccfPICmain。ctest。c
  这里得根据实际编译环境加上或者不加上fPIC参数,这个是与gcc的版本有关,像我这边的gcc5。4。0就得显示加上fPIC这个参数,若是不加,则会影响下一步的链接过程。
  在Linux中,动态库的扩展名一般为。so。针对上面生成的test。o文件,生成动态库的命令为:gccsharedtest。oolibtestd。so
  若是上一步不加fPIC参数,则会产生如下错误:
  大概意思就是。rodata不可以拿来制作共享文件,请加上fPIC参数重新编译。问题分析:
  fPIC作用于编译阶段,告诉编译器产生与位置无关代码(PositionIndependentCode),则产生的代码中,没有绝对地址,全部使用相对地址,故而代码可以被加载器加载到内存的任意位置,都可以正确的执行。这正是共享库所要求的,共享库被加载时,在内存的位置不是固定的。
  从gcc来看,shared应该是包含fPIC选项的,但似乎不是所有的版本都支持,所以最好显式加上fPIC选项。
  使用链接动态库的方式生成可执行程序,命令:gccmain。oL。ltestdotestd。out
  这里的L。的含义是在搜索库文件时包含当前目录,ltestd的含义是链接名称为libtestd。so的动态链接库。
  下面运行testd。out程序,发现出现如下错误:
  不能找到共享库文件libtestd。so,加载失败。因为一般情况下Linux会在usrlib路径中搜索需要用到的库,而libtestd。so库并不在这个路径下。解决方法有两种:一种就是把这个文件拷贝至usrlib路径下,但是一般不允许这样做,一般用户也不允许往这个路径里拷贝东西。另一种就是把当前路径增加为动态库的搜索路径,命令为:exportLDLIBRARYPATH。:LDLIBRARYPATH
  这时候就可以正常运行了:
  2、静态链接实验
  静态库用ar工具来制作。ar是一个归档工具,用于建立、修改、提取归档文件(archive)。一个归档文件可以包含多个目标文件,也被称为静态库。在Linux下,静态库的扩展名一般为。a。
  把目标文件test。o做成静态库,命令:arrvlibtests。atest。o
  其中rv参数为组合参数,其中r参数表示当建立的模块名已经存在时,则覆盖同名模块,v参数用来显示附加信息,比如被处理的文件的名字。
  使用链接静态库的方法生成可执行程序,命令:gccmain。oL。ltestsotests。out
  运行程序:
  删除静态库之后,可执行程序也是能正常运行的。事实上,使用链接静态库的方式生成的可执行程序与直接使用目标文件生成的可执行程序没有区别。只是经过了静态库的链接,变为了一个文件,方便于调用、移植和保存。
  归档工具ar可以很方便地查看和删除归档文件中的成员。
  查看静态库libtests。a中的内容,命令:
  关于ar工具更多的命令参数可输入arhelp进行查看:
  以上就是关于静态链接与动态链接的Linux笔记,如有错误,欢迎指出!

关晓彤为什么非华晨宇不嫁要不是鹿晗他们早在一起了娱乐圈中的艺人他们只要是稍微的有一些亲密的接触被媒体捕捉到之后,就会传出有关两个人的八怪,但是话说回来如果是在一起拍电视或者是综艺合作之类的,肯定互动是少不的了啊。就像华晨宇和……富婆快乐四件套是啥钢丝球是第几个故事惊心动魄富婆包养小鲜肉,在前些年的时候,小鲜肉很多啊!颜值好,身材好,在各个典礼的背后是很多富婆的出现,完全是明白了追星什么,都不如这些富婆厉害,一开始的时候知道网络中就是富婆钢丝球,……张嘉译的老婆是谁这两人太有夫妻相了大家对演员张嘉译应该不会感到陌生吧。这几年张嘉译的人气可是相当的高。大叔形象已经在众多人心中根深蒂固。特别是他独有的走姿架势简直成为了他的标志。张嘉译不仅是一位实力派演员。即便……HiFi发烧友到底享受什么?前排提示,本回答并非针对所有人,但本文也许还是会刺激到一些人,请酌情观看。不管享受什么,在我看来,相当一部分发烧友享受的并不是音乐。HiFi发烧友所干的事情,大致可……炫迈妹儿微博黑历史后来快手被封掉了炫迈妹儿微博黑历史,炫迈妹儿走红之后,也有人专门扒她的黑历史,其中好像有一个菲姐的专门扒她,炫迈妹儿始终都没有回应。不过后来这个人的快手就被封掉了,这件事情也就不了了之了,之前……邓文迪年轻时图片大全洒脱如此怎么可能全凭颜值邓文迪本来是一名和大众没有丝毫差别的女性,如果她是天生丽质的那种人小编自然也无话可说,可事实摆在眼前,洒脱如此怎么可能全凭颜值?邓文迪年轻时图片大全叫人觉得即使没有闭月羞花的貌……小米盒子应用商店遭破解,无需u盘轻松给小米盒子安装直播软件小米盒子自带应用商店有很多实用的应用软件,唯独缺少了直播软件。很多人因为不想支付高额的有线电视费用,而选择了免费的直播软件观看直播。小米盒子可以安装直播软件吗?今天小编就教大家……横店四大炮王都是谁私生活混乱欲望非常强悍横店四大炮王都是谁?为什么会有这样的一个称号呢?不过很奇怪的一点则是在荧幕中一直是好男人形象,这样的反差让人难以去接受,也是年轻力壮,确实是有自己的欲望在这里,对于太多人来说也……今天,你被种草了没?种草经济火爆发展的背后公众号:关注诺好杂谈了解人生百态亲测有效,还不快去买买买!、太好吃了,被种草了!、OhMyGod,快盘它!在自媒体盛行,人人皆可直播带货、社交带货的时代。种草经济已……苹果耳机平替品FitPods主动降噪耳机上手体验前言之前笔者用过一款高仿的苹果AirPodsPro蓝牙耳机,除了外观一模一样外,那音质和降噪功能真的不能比。平时也体验过很多国产的品牌耳机,其实都是不错的,真没必要去为了……神州租车发布2021年十一出行大数据报告神州租车发布《2021年十一出行大数据》报告国庆长假余热未消,神州租车《2021年十一出行大数据报告》(以下简称报告)正式出炉。报告显示,十一出游需求集中释放之下,私密性……蓝洁瑛到底发生过什么精神出现了问题蓝洁瑛到底发生过什么,发生了很多事情,最终导致一个人完全变成了另一个人。1。遇上职场性骚扰,而且一次遇上了两个娱乐圈的大佬,先后发生性行为。蓝洁瑛敢怒不敢言,想忍下来又迟迟忘不……
好戏将至,iOS14iPadOS等年度重磅更新,33年来首次33年来首次,Apple有史以来首次将开发者大会搬至线上举行。与以往线下面对面举办发布会不同,这苹果不再在旧金山圣何塞中心(McEneryConvention)举行发布会举办线……机箱对于我们组装的电脑相当于什么机箱的相关知识机箱侧盖打开会有什么不好的影响吗导读冬天来了,这两天临沂冷得特别快,很多小伙伴都给自己加上了厚厚的外套,那么我们在组装电脑的时候也给电脑加上了机箱的这一层外套,那么很多人……茅台投资,贵阳最高市值国企提名88年董事,人均薪酬超35万【高管动态】贵阳银行在发布三季度财报的同时,还进行一项人事调整。财报显示,公司第三季度实现营收36。52亿元,同比减少0。7;归属母公司股东的净利润14。29亿元,减少0……Windows下MySQL数据库详细安装教程本教程以mysql5。5。40win64为例。1。选择合适的MySQL安装版本这是mysql5。5。40版本安装包。点击安装包,开始安装。2。基本上都是……为什么网络知道你在购买天文望远镜?长沙SEO告诉你前阵子有个朋友问我说,为什么总是有一种感觉网络知道他最近在买或者在看什么东西一样,他说因为想看一场流星雨所以去搜了下天文望远镜的报价,结果之后在很多其他的网页也都会出现有关望远……天文学家首次精确定位来自太空的快速射电暴信号腾讯科技讯7月3日消息,据国外媒体报道,2018年9月,天文学家接受到一次来自宇宙深处的快速射电暴,并将其命名为FRB180924。日前,天文学家确定了这次快速射电暴的源头,相……双十一手机周销量出炉各价位段哪些品牌哪些机型销量爆棚?从10月31日晚8点付尾款开始,到现在双十一正式开启也有一周的时间了,相信很多小伙伴都在此期间买到了自己心仪的产品,特别是手机产品类,成为了一大热门。而近日,各大手机品牌也相继……咆哮而来的新法式浪漫,你准备好了吗?在盛开的樱花树下,来一组美美的自拍浪漫气息满分,坐在午后的窗边看细碎阳光扫在书页上,手边茶香氤氲又是另一种散漫的自由那么今天,来看点不一样的霸气的……宝马将推M4CS和M3CSL性能版车型配备独家M大灯日前,从海外了解到,宝马未来将推M4CS和M3CSL性能版车型,以满足众多消费者对于高性能版车型的追求。据了解,宝马将很快推出高性能版的BMWM3M4车型。目前,全新宝马……一辆非豪华品牌的紧凑型SUV,凭什么卖到30万一辆?随着这两年国产品牌的异军突起,国产SUV的竞争力不断增强,在保持价格优势的前提下,车做得越来越大,造型越来越漂亮,科技配置也越来越多、越来越好。不少十万出头的国产紧凑SUV,其……中级合资SUV巅峰对决丰田威兰达大众探岳别克昂科威SUV作为国内消费者最喜欢的车型之一,2020年,其总销量达到了946。1万辆,占到全年汽车销量的近四成,是占比最大的汽车子分类(数据来源:乘用车市场信息联席会)。而作为SUV……现在你还在买移动硬盘?老程带你花100块钱弄一块500G的移导读现在人需要的文件越来越多了,但是百度网盘价格越来越贵,其他的网盘越来越不实用,可能有的小伙伴想着给自己弄一块移动硬盘带着,尤其是现在硬盘价格这么便宜,网盘想要全速都要……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网