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

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

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

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

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

一、静态链接

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

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

一、静态链接

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

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

二、动态链接

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

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

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

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

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

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

阅读全文

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

热点内容
怎么修改手机网游数据 浏览:106
二手钢琴交易平台有哪些 浏览:480
atpcs规定数据栈为什么类型 浏览:932
新区农贸市场怎么走 浏览:21
西安海棠职业技术学校扩招宿舍怎么分 浏览:467
开户及交易注意什么 浏览:612
成都潮音菜市场是哪个区 浏览:924
增加产品线有什么意义 浏览:613
农产品推介新闻稿如何写 浏览:695
了解制造业信息有哪些平台 浏览:767
想代理vr怎么做 浏览:65
数据库多少条以上数据就要加索引 浏览:346
cnc宏程序怎么打开 浏览:762
税控系统产品包含哪些 浏览:883
如何通过产品实现人生梦想 浏览:672
四川交通职业技术学院驾校怎么样 浏览:96
商场不同产品销项税额怎么算 浏览:168
人才市场摆摊多少钱 浏览:369
如何获取ideamaven输出信息 浏览:308
繁育黑斑狗鱼哪里技术好 浏览:61