导航:首页 > 软件知识 > 程序是如何执行静态链接的

程序是如何执行静态链接的

发布时间:2024-10-18 07:33:12

① 静态链接和动态链接的区别

静态链接和动态链接的区别是静态链接和动态链接两者最大的区别就在于链接的时机不一样,静态链接是在形成可执行程序前,而动态链接的进行则是在程序执行时。

一、静态链接

特点:在生成可执行文件的时候(链接阶段),把所有需要的函数的二进制代码都包含到可执行文件中去。因此,链接器需要知道参与链接的目标文件需要哪些函数,同时也要知道每个目标文件都能提供什么函数,这样链接器才能知道是不是每个目标文件所需要的函数都能正确地链接。如果某个目标文件需要的函数在参与链接的目标文件中找不到的话,链接器就报错了。

静态链接和动态链接的优缺点

一、静态链接

1、优点:在程序发布的时候就不需要的依赖库,也就是不再需要带着库一块发布,程序可以独立执行。

2、缺点:程序体积会相对大一些。如果静态库有更新的话,所有可执行文件都得重新链接才能用上新的静态库。

二、动态链接

1、优点: 多个程序可以共享同一段代码,而不需要在磁盘上存储多个拷贝。

2、缺点: 由于是运行时加载,可能会影响程序的前期执行性能。

② 操作系统中程序的链接:装入时动态链接、运行时动态链接和静态链接都是什么意思有什么区别

静态链接是在生成可执行程序的时候就把库中的内容加入到程序中。

载入时动态链接是在将功能模块读入内存时把动态库中调用到的相关模块的内容载入内存。
运行时动态链接是在执行程序调用到模块内容时再将动态库中的相应模块载入到内存。

这里有两个时间问题。一是载入时间,二是执行时间。
静态链接由于是在一开始就把所有模块都加载进入内存,所以如果模块很多的话效率就会被大大拉低。
载入时动态链接是分别载入,当把一个模块载入内存时检查有调用关系的模块载入,比静态链接节省了许多开销。
运行时动态链接则是把当前模块调用的模块推迟到调用的时候再载入。
三者之间的关系就像是机枪,冲锋枪和手枪
机枪在一开始就把所有子弹装好,开枪的时候很快,但也很笨重。
冲锋枪则是将子弹分弹夹存好,轻便了许多,但是会有一段装填时间。
手枪就更加轻便了,但是弹夹容量更小,装填的频率又变高了。

阅读全文

与程序是如何执行静态链接的相关的资料

热点内容
花呗怎么删掉交易 浏览:357
如何在网上查船只信息 浏览:816
做交易有什么忌讳 浏览:620
dj市场有什么 浏览:506
医院信息部是做什么工作的 浏览:103
南方电网代理购电是什么意思 浏览:928
鸡什么时候才能交易 浏览:395
抖音评论数据哪里看 浏览:581
学信网手机版如何修改个人信息 浏览:424
菜市场卖卤水怎么样 浏览:68
什么数据分析方案好 浏览:975
拍卖外国人房子要什么程序 浏览:527
手机信息通道是什么 浏览:170
如何跑设备清洗市场 浏览:223
哪里有钣金无损修复技术培训 浏览:302
什么机油是纳米技术 浏览:85
服务器数据库如何备份 浏览:264
湖里有哪些水产品 浏览:254
数据库光盘不见了怎么办 浏览:257
程序员微服务什么意思 浏览:603