2011-03-23 122 views
0

可能重复:
What do 'statically linked' and 'dynamically linked' mean?什么是静态库,什么是动态库,有什么区别,什么是更好的使用,为什么?

我知道这里很多similiar问题(例如firstsecondthird one),但没有一个人,我发现我的问题的完整的答案。请解释我的主要区别,以及何时需要使用哪种类型的库?

+2

http://stackoverflow.com/questions/311882/what-do-statically-linked-and-dynamically-linked-mean – 2011-03-23 22:14:56

+0

对于你的问题的第二部分,请仔细阅读这个问题: HTTP:/ /stackoverflow.com/questions/140061/when-to-use-dynamic-vs-static-libraries – vinayvasyani 2011-03-23 22:11:57

+0

感谢@PiotrLegnica – 2011-03-23 22:16:22

回答

2

静态库旨在通过链接器将您的代码与单个可执行文件相结合。

动态库是指在主要可执行文件加载完成后由操作系统加载,符号地址的链接将由OS在此时完成。这可能会自动基于可执行文件的依赖性信息来完成,也可以明确的程序来完成。这就是所谓的“动态链接”,因为操作系统加载前的库可以在任何时候改变。