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

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

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

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

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

一、静态链接

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

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

一、静态链接

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

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

二、动态链接

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

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

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

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

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

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

阅读全文

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

热点内容
为什么同款鞋子数据没有人家好 浏览:716
市场监管局职能是什么 浏览:248
检验数据横线是什么意思 浏览:141
龙里高新技术产业园区在哪个乡镇 浏览:463
银饰市场销量怎么样 浏览:213
大数据技术赚多少 浏览:580
哪个省有苹果手机批发市场 浏览:498
宁德旅游市场有多少人 浏览:490
信息化由哪个部委管 浏览:304
哪个物流公司可以实时现物流信息 浏览:923
程序是如何执行静态链接的 浏览:916
人本主义的治疗技术包括什么 浏览:256
为什么程序查询方式效率不高 浏览:901
信息中心操作人员是干什么的 浏览:92
女生开车技术好怎么夸 浏览:680
g68应该加在程序的哪个位置 浏览:539
上了没有报备的产品会怎么样 浏览:586
荒野日记怎么才算学技术 浏览:115
如何代理津成电线 浏览:212
证券交易特征有哪些 浏览:139