首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
课程
专栏·文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
在线笔面试、雇主品牌宣传
登录
/
注册
躺平怪
中南大学 经济学类
发布于湖南
关注
已关注
取消关注
@编程十万问:
『面试问答』:静态链接和动态链接的区别是什么?
面试官:请说一下,静态链接和动态链接的区别是什么?一个C/C++文件要经过预处理(preprocessing)、编译(compilation)、汇编(assembly)和链接(linking)4步才能变成可执行文件。程序代码首先经过预处理器生成 .i 文件。然后通过编译器生成 .s 汇编文件,再通过汇编器生成 .o 目标文件,最后通过链接器链接生成可执行文件。在链接阶段,根据链接过程中处理方式的不同,链接可以分为静态链接和动态链接。静态链接是在链接阶段,就把所有需要的函数的二进制代码都包含到可执行文件中去,完成所有符号引用的一种链接方式。而动态链接在链接的时候不直接拷贝相应依赖库的代码,而是通过记录一系列符号和参数,在程序运行或加载时将这些信息传递给操作系统,由操作系统负责将需要的依赖库加载到内存中,然后程序在运行到指定代码时,去执行内存中已经加载的依赖库的代码,最终达到运行时链接的目的。静态链接和动态链接对应的链接库也不同,可分为两种,分别是静态链接库和动态链接库,在Linux中,静态链接库文件以.a作为文件后缀,动态链接库以.so作为文件后缀。静态库会在链接阶段将静态库中的代码复制到可执行文件中,当程序在执行的时候,在可执行文件中本身就有了静态库的代码,可以直接调用。动态库则不会将代码打包到可执行文件中,而是打包动态库的名称等信息,在可执行程序运行的时候,需要去找到动态库的文件,然后把动态库加载到内存中才可以使用动态库中的代码。静态库被打包到可执行程序中,生成的可执行文件较大,但是程序加载运行速度会比较快,发布程序时,也无需提供静态库,移植比较方便。但是当多个程序链接同一个静态库时,生成的每一个可执行文件中,都会含有这个静态库,相当于在内存中同时运行着两个相同的静态库,比较浪费系统资源。另外,当静态库的内容发生更新时,依赖该静态库的程序也需要重新进行链接,导致程序的更新升级会比较麻烦。动态库可以实现进程间资源共享,比如可执行程序A在运行时用到了某个动态库,那么系统会将该动态库的代码动态加载到内存中,此时若正在运行的程序B也需要用到该动态库中的代码,则不需要再次加载该动态库,而是可以与程序A共享。此外,当动态库的内容更新时,只需重新编译生成新的动态库即可,而不需要对依赖该动态库的程序重新进行编译链接。
点赞 1
评论 0
全部评论
推荐
最新
楼层
网易互娱
校招火热招聘中
官网直投
相关推荐
刷题的四郎
05-15 14:09
北京交通大学 电子信息类
快手C++服务端一面
算法题:(1)有100个灯泡呈环形排列,每次改变一个灯泡的状态都会改变相邻灯泡的状态。给出随机的灯泡状态,请写出将灯泡全亮的算法。(2)24点。给出4个数以及加减乘除四个符号,请判断是否能够算出24点。聊项目C++ web服务器:架构、定时器、多线程问题Java 黑马点评:分布式锁、缓存穿透问题全程无八股。春招补录,之前连HR筛选都过不去,笑嘻了。
快手一面210人在聊
查看2道真题和解析
点赞
评论
收藏
转发
正在卷的咸鱼很喜欢后撤步
05-17 10:25
万得信息_web后端开发工程师(准入职员工)
万得暑期实习内推
看见很多自己内推的牛友没进面很难受,瞅了一圈简历,给大家几个简历小tip, 1.自我评价,重点强调为什么自己能胜任xx工作(尤其是非技术类) 2.工作经历公式 【star法则】 实习部分做的和岗位JD越贴合越好 3.校园经历,只挑跟应聘岗位相关的写,展现自己职业规划清晰万得Wind25届暑期实习生招聘(❗️24/25/26届可投)【关于我们】万得是中国大陆领先的金融数据、信息和软件服务企业,总部位于上海陆家嘴金融中心【招聘岗位】产品/运营/数分/测试/算法/开发/职能(HR)/设计/管培生【面向对象】2024年6月-2026年6月的应届毕业生【工作地点】上海、南京、苏州、深圳、扬州【投递链...
投递万得信息等公司10个岗位 >
点赞
评论
收藏
转发
咖啡渍
04-24 19:18
门头沟学院 计算机类
除了有个爱我的漂亮女朋友,什么都没了
找了两个月实习0 offer,最有希望的阿里云今天收到消息说不推进了小米12号二面面试完感觉很好但是没消息拼多多约了26号hr面但是前几面感觉发挥不好很可能后面排序挂其他基本没希望了本2硕9非科班找个实习都这么难,真的卷不动想去做点自由职业了
投递小米集团等公司10个岗位
点赞
评论
收藏
转发
昱乎昼
04-19 18:47
第一拖拉机制造厂拖拉机学院 计算机类
点……点击即送???
点赞
评论
收藏
转发
只想要拿offer
05-16 22:59
荣耀终端_产品研发部_IT应用开发工程师(准入职员工)
荣耀内推
荣耀处在上升期,hc多多,投递之后可以在牛客上联系我查进度,多个offer多条路。相比于纯互联网,荣耀非常人性化,各个岗位都可以投呀,面试难度不大,总共两面,比较注重基础和能力,多刷刷面经,各个部门都在捞人,相对来说,需求很大,竞争不算激烈,加油!希望在24年看到你们!快来投递吧!内推码:guskja内推码:guskja内推码:guskja内推链接:https://career.honor.com/SU61b9ba97bef57c13bca5cffd/mc/position/intern?acotycoCode=guskja&orgId=0&projectId=101001&a...
投递荣耀终端等公司10个岗位 >
点赞
评论
收藏
转发
点赞
收藏
评论
分享
回复帖子
提到的真题
返回内容
全站热榜
1
...
开摆了,写小说去了
9319
2
...
没offer的我们也很优秀偶
8168
3
...
【有奖活动】浅聊一下我的实习⭐
8066
4
...
双非本 腾讯WXG暑期已offer | 附面经
7964
5
...
华为暑期开奖
6969
6
...
滴滴秋储-服务端开发 OC
5707
7
...
美团前端一二面(已oc
5410
8
...
快手二面凉经
5355
9
...
华为实习offer!终于告一段落了
5302
10
...
真有必要读研吗
5262
正在热议
#
牛客帮帮团来啦!有问必答
#
822666次浏览
13040人参与
#
机械制造薪资爆料
#
320131次浏览
3732人参与
#
晒一晒我的offer
#
3468287次浏览
55260人参与
#
0offer是寒冬太冷还是我太菜
#
428113次浏览
4945人参与
#
你觉得找工作该拿大厂还是小厂练手
#
61637次浏览
872人参与
#
荣耀求职进展汇总
#
70646次浏览
717人参与
#
如果可以选,你最想从事什么工作
#
186116次浏览
3078人参与
#
实习生应该准时下班吗
#
80759次浏览
592人参与
#
金三银四,你有感觉到吗
#
329327次浏览
4222人参与
#
海康威视求职进展汇总
#
101624次浏览
1217人参与
#
正在春招的你,也参与了去年秋招吗?
#
136495次浏览
1705人参与
#
实习必须要去大厂吗?
#
13850次浏览
219人参与
#
实习工作,你找得还顺利吗?
#
42461次浏览
469人参与
#
我在牛爱网找对象
#
49882次浏览
324人参与
#
软件开发投递记录
#
479232次浏览
7243人参与
#
宁德时代求职进展汇总
#
37068次浏览
413人参与
#
国企vs私企,你更想去?
#
20275次浏览
205人参与
#
求职遇到的搞笑事件
#
19680次浏览
287人参与
#
想实习转正,又想准备秋招,我该怎么办
#
117894次浏览
1329人参与
#
正在实习的你,有转正机会吗?
#
106457次浏览
1044人参与
牛客网
牛客企业服务