目录
一、GCC工作流程
预处理:把#头文件展开,进行宏替换,去掉注释(生成.i文件)

编译:把预处理后的文件生成汇编文件(.s文件),主要是检查语法、语义问题
汇编:把汇编文件生成目标文件(.o文件)
链接:将函数库中相应的代码组合到目标文件,生成可执行文件(默认a.out文件)
o文件不会立即执行,因为可能出现:一个.cpp文件中的函数引用了另一个.cpp文件中定义的符号/调用了某个库文件中的函数。链接的目的就是将这些文件对应的目标文件链接成一个整体,从而生成可执行文件。
二、静态链接与动态链接
程序库:包含数据和执行代码的文件,不能单独执行,可以作为程序库的一部分来完成某些功能。
库的存在可以使程序模块化,可以加快程序的再编译,实现代码复用,便于更新程序
程序库又分为静态链接库与动态链接库
1、静态链接
在链接阶段,将汇编生成的.o文件和所需要的库一起链接打包到可执行文件中去,程序运行的时候不再调用其它的库文件
一个静态库,可以看作是一些目标代码的集合,在可执行程序运行前就已经加入到执行代码中,成为执行程序的一部分。
静态链接的优点:对运行环境依赖小,具有较好的兼容性。
静态链接的缺点:生成的程序较大,需要更多的系统资源(所需的所有库都被打包进可执行文件了),在装入内存中消耗更多时间
一旦库函数有了更新,必须重新编译应用程序
此处,我们制作实现加减乘除的静态库,首先编写add.c、sub.c、mul.c、div.c文件及对应.h文件,另外编写text.c文件进行测试。gcc -c 生成目标文件.o,然后将.o文件打包,制作静态库libtext.a
2、动态链接
静态库存在的问题:
(1)若两个.o文件都使用同一个静态库,那么内存中会拷贝2份静态库的代码,然 后分别与两个.o文件一起打包到可执行文件中,造成空间浪费。
举个例子:某个静态库占1M内存,有2000个.o文件使用这个静态库,内存中有2000个静态库的代码(将近2000GB),空间浪费严重。
(2) 所需的库被拷贝到可执行文件中去了,如果某个库更新了,则与它相关的所有可执行文件都需要重新编译。
为了解决这两个问题,引出动态库(又称共享库),动态库在程序编译时,并不会被链接到目标代码中,而是在运行时载入,不同应用程序如果调用相同的的库,内存里只有一份共享库的实例,避免了浪费。由于动态库在运行时才被载入,也解决了静态库对程序的更新、部署和发布带来的马粪,用户只需要更新动态库即可。
动态链接的优点:链接时,仅仅建立与所需库函数之间的关系;
在程序运行时才将所需资源调入可执行程序;
简化程序的升级,有较小的程序体积;
实现进程之间的资源共享,内存中只有一份动态库的实例,避免充分拷贝
动态链接的缺点:依赖动态库,不能独立运行
动态库依赖版本问题严重
同样的,我们制作制作实现加减乘除的动态库。
我们把动态库.so和测试文件.c拷贝当前目录,使得系统加载可执行文件时,能够知道所依赖的库的名字,但是还需要找到动态库的绝对路径,此时需要系统动态载入器(dynamic linker/loader)。对于elf格式的可执行程序,是由ld-linux.so*来完成的。搜索elf文件的DT_PATH段(环境变量)LD_LIBRARY_PATH,/etc/ld.so.cache文件列表,/urs/lib目录找到库文件后将其载入内存。
动态库加载失败的解决办法:这里给出两个解决办法,来找到动态库
总结
本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注的更多内容!
相关推荐:
一秒采集:提升效率、创造价值的秘密武器,苏州网站整站优化
seo相当于什么职业,seo相当于什么职业类别 ,usatisfy ai
SEO优化排名原理解析:如何提高网站排名,实现精准流量获取,奥迪ai售价
ChatGPT登录界面都不显示了?可能是这些原因导致的!,上海小学ai智能课
AI网页版本:开启智能时代的新篇章,拼音标调ai
AI自动生成:开启智能时代的无限可能,ai熊熊图片
SEO定价策略:如何根据企业需求定制最佳价格方案,教育培训抖音营销推广
ChatGPT回答问题,网页无法线下滚动?解决方案轻松get!,谷歌AI铃声
seo给你什么帮助,seo的利与弊 ,ai 大厨
《收录情况:数字时代的网络信息检索与价值体现》,山东全域营销推广软件客服电话
GPT哪个模型是最新的?AI语言生成的未来,ai回头
优化提长:让企业效能提升的秘密武器,长沙网站建设创意
“爱站”:开启网站优化与流量增长的新纪元,seo入门ppt
ChatGPT:基于Transformer技术的语言模型,开创人工智能未来,AI独战OK
ChatGPT出问题?背后的原因与解决方案,夸克ai写作生成
为什么选择SEO会员服务,让您的网站流量飞速增长,靖边专业网站建设公司
seo链接有什么用,seo外链是什么意思 ,one ai写作
ChatGPT崩了?用户称打开是一片空白,真相竟然如此!,zzz*明星AI换脸
亚马逊中什么是seo,亚马逊sop ,ai临摹中国名画
ChatGPT:如果您正在使用VPN,这些技巧您一定要知道!,AI换脸*H
ChatGPT故障:科技背后的秘密与应对策略,华为什么手机带ai功能
SEO和品牌营销:如何通过搜索引擎优化打造品牌影响力,建邺seo软件
SEO永远,数字营销的核心力量,广州seo搜索栏内容
SEO与SEM策略:提升网站流量与品牌曝光的双剑合璧,ai补图
“多网建站”助力企业跨越发展,开启全新数字化时代,海南网站优化电池
SEO选择:如何挑选最合适的SEO优化策略?,wb免费刷粉网站推广
SEO量:提升网站流量和排名的关键法则,德兴seo
好用的AI写作软件,让创作更高效
360刷排名工具选哪家?揭秘2025年最强排名优化工具!,ai写作网站哪个好一点
不利于seo是什么,不属于seo对网店推广的作用 ,ai渐变下载
ChatGPT:打破语言障碍,理解与沟通的新时代,交通轨道ai
seo需要学些什么内容,学seo的基础 ,中国ai公司年收入
SEO找词:如何精准找到高效关键词,提升排名和流量,河源网站优化平台
seo读什么书,seo是哪个专业的 ,亚洲9ai吧
AI做文章:引领智能创作的未来
用AI写一篇文章,如何提升你的写作效率与创意
SEO运维:提升网站排名的核心战略,邢台网站建设优化建站
SEO出超:如何通过精准优化实现网站流量大爆发,营销推广方式联系f火15星
“关键词指白”:揭秘如何通过精准关键词优化实现流量暴增,全面分析网站seo
seo要什么条件,seo都需要做什么 ,交互ai求职
SEO快速优化文章排名:提升网站流量的必备技巧,ai小苹果会员分享
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
seo自己做什么,自己做seo需要花钱吗 ,ai850775
产品seo什么意思,产品seo标题是什么 ,ai模仿张宇
SEO站外优化策略:提升网站排名的关键因素,遵义公司网站推广
撰写稿子的AI,写作的“超级助手”来了!
AI人物生成:重新定义虚拟形象创作的未来
什么是seo长尾词,什么是seo长尾词的概念 ,绿茶ai换脸杨超越
ChatGPT为什么访问不了了?了解背后的原因与解决方法,AI怎么拖入路径