首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
躺平怪
中南大学 C++
发布于湖南
关注
已关注
取消关注
@编程十万问:
『面试问答』:静态链接和动态链接的区别是什么?
面试官:请说一下,静态链接和动态链接的区别是什么?一个C/C++文件要经过预处理(preprocessing)、编译(compilation)、汇编(assembly)和链接(linking)4步才能变成可执行文件。程序代码首先经过预处理器生成 .i 文件。然后通过编译器生成 .s 汇编文件,再通过汇编器生成 .o 目标文件,最后通过链接器链接生成可执行文件。在链接阶段,根据链接过程中处理方式的不同,链接可以分为静态链接和动态链接。静态链接是在链接阶段,就把所有需要的函数的二进制代码都包含到可执行文件中去,完成所有符号引用的一种链接方式。而动态链接在链接的时候不直接拷贝相应依赖库的代码,而是通过记录一系列符号和参数,在程序运行或加载时将这些信息传递给操作系统,由操作系统负责将需要的依赖库加载到内存中,然后程序在运行到指定代码时,去执行内存中已经加载的依赖库的代码,最终达到运行时链接的目的。静态链接和动态链接对应的链接库也不同,可分为两种,分别是静态链接库和动态链接库,在Linux中,静态链接库文件以.a作为文件后缀,动态链接库以.so作为文件后缀。静态库会在链接阶段将静态库中的代码复制到可执行文件中,当程序在执行的时候,在可执行文件中本身就有了静态库的代码,可以直接调用。动态库则不会将代码打包到可执行文件中,而是打包动态库的名称等信息,在可执行程序运行的时候,需要去找到动态库的文件,然后把动态库加载到内存中才可以使用动态库中的代码。静态库被打包到可执行程序中,生成的可执行文件较大,但是程序加载运行速度会比较快,发布程序时,也无需提供静态库,移植比较方便。但是当多个程序链接同一个静态库时,生成的每一个可执行文件中,都会含有这个静态库,相当于在内存中同时运行着两个相同的静态库,比较浪费系统资源。另外,当静态库的内容发生更新时,依赖该静态库的程序也需要重新进行链接,导致程序的更新升级会比较麻烦。动态库可以实现进程间资源共享,比如可执行程序A在运行时用到了某个动态库,那么系统会将该动态库的代码动态加载到内存中,此时若正在运行的程序B也需要用到该动态库中的代码,则不需要再次加载该动态库,而是可以与程序A共享。此外,当动态库的内容更新时,只需重新编译生成新的动态库即可,而不需要对依赖该动态库的程序重新进行编译链接。
点赞 1
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
01-27 15:00
库洛游戏_HR(准入职员工)
步步高内推,步步高内推码
步步高实验学校 2026届校招启动啦【学校简介】东莞市步步高实验学校于 2023 年投入运营,占地 230 亩,是一所集幼儿园、小学、初中、高中于一体的十五年一贯制非营利性高端民办学校,学校全面实行小班化教学,学校师生比为 1:5;步步高教育专家团队由来自一流大学的国家课标专家、教育学家,来自著名学校的卓越校长,来自一线、有着丰富教学经验的著名特级教师,以及来自国家级教育媒体的教育策划专家共同组成,为步步高的课程、教学、管理奠定了坚实基础。【招聘岗位】• 幼儿园、小学部及初中部各学科类教师 & 国际教师,类别多多,等你pick! 【福利待遇】• 薪资:幼儿园老师年收入16万起 、中小学...
点赞
评论
收藏
分享
02-16 08:41
蚌埠坦克学院 嵌入式软件开发
影石-嵌入式软件开发-一面
1. 描述一下Linux驱动中字符设备的注册流程和核心数据结构?答案:核心结构:cdev结构体、file_operations操作集关键步骤:分配设备号(静态register_chrdev_region或动态alloc_chrdev_region)初始化cdev并添加到系统实现file_operations(open、read、write、ioctl、release等)创建设备节点(手动mknod或通过udev)注册流程:register_chrdev_region → cdev_init → cdev_add卸载流程:cdev_del → unregister_chrdev_region2....
查看15道真题和解析
点赞
评论
收藏
分享
01-21 04:38
中国矿业大学 大数据开发工程师
不是说年底缺人吗
再找不到实习就找不到工作了
喵_coding:
年底缺人是短视频营造出来的
而且一般说的也很宽泛 不是特指后端
点赞
评论
收藏
分享
01-16 11:50
浙江工商大学 Java
26年实习现状
大家自己看
joecii:
如果没有工资,那可能没有工资是这家公司最小的问题了
找实习记录
点赞
评论
收藏
分享
02-16 11:08
滴滴_移动端研发工程师(准入职员工)
腾讯内推,腾讯内推码
腾讯IEG 后端开发实习面经流程很快,效率棒棒哒10.10投递,10.11日过初筛,约一面到10.13,10.16就结束hr面了,6天速通一面 10.13挑一个项目讲打开项目github看,对照源码问了些问题Redis 用过什么数据结构Reids怎么实现分布式锁10亿条消息去重说下去会好好看看我的github(开源贡献比较多)算法题二面 10.15聊了下项目一聊了下项目二gmp调度模型go gctcp可靠性有哪些机制大模型的原理兴趣爱好玩啥游戏(金铲铲,暗区突围,王者荣耀,皇室战争,总之腾讯游戏玩的雀实多,也充了不少钱其实)Hr面 10.16等offer中。。10.24 offer腾讯2027...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
嵌入式应届生春招怎么准备——从零到拿 Offer 的系统攻略
773
2
...
关于租房
406
3
...
27届实习近一年的年度经历和总结
389
4
...
HTTP 和 HTTPS 区别
368
5
...
agent实习都干什么?prompt设计
257
6
...
得力嵌入式工程师 二面 面经
206
7
...
美团推荐算法一面
203
8
...
大三无实习
192
9
...
27前端双非找实习
182
10
...
Redis 的 Zset底层是怎么实现的?
173
创作者周榜
更多
正在热议
更多
#
牛客新年AI问运
#
13720次浏览
167人参与
#
牛友们,签完三方你在忙什么?
#
137349次浏览
993人参与
#
牛客AI体验站
#
17839次浏览
302人参与
#
担心入职之后被发现很菜怎么办
#
282460次浏览
1185人参与
#
如何缓解入职前的焦虑
#
258821次浏览
1451人参与
#
校招第一份工作你干了多久?
#
139348次浏览
609人参与
#
你最讨厌面试被问什么
#
1069次浏览
22人参与
#
牛客租房专区
#
151328次浏览
1478人参与
#
秋招开始捡漏了吗
#
229443次浏览
1044人参与
#
秋招投递攻略
#
268769次浏览
2553人参与
#
九月了,是考研还是就业?
#
89172次浏览
556人参与
#
搜狐工作体验
#
4113次浏览
29人参与
#
机械人求职现状
#
33619次浏览
297人参与
#
我是XXX,请攻击我最薄弱的地方
#
61751次浏览
409人参与
#
用友工作体验
#
18076次浏览
151人参与
#
你的实习什么时候入职
#
348058次浏览
2291人参与
#
今年秋招还有金九银十吗
#
75086次浏览
506人参与
#
机械人的offer怎么选
#
252644次浏览
1189人参与
#
这份实习,有没有动摇过你的职业方向?
#
2071次浏览
32人参与
#
校招谈薪技巧
#
129602次浏览
1357人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务