首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >共享库和静态库

共享库和静态库
EN

Stack Overflow用户
提问于 2011-06-24 20:36:04
回答 1查看 1.6K关注 0票数 0

谁能给我解释一下,在gcc(makefile)中,共享库和静态库有什么不同?

我读到静态库是独立的代码,但它增加了可执行文件的大小

但是,虽然共享库动态地链接函数,但它不会增加可执行文件的大小

我不能理解这两者之间的区别。

谁能告诉我什么时候应该创建静态库,什么时候应该创建共享库。

他们说共享库是一个位置相关的代码

我们所说的位置相关代码是什么意思?

如果共享库不会增加代码,如果静态库增加了代码大小,那么我们可以选择共享库。

但是为什么我们也有静态库,它的真正用途是什么?

请帮帮我伙计们

EN

回答 1

Stack Overflow用户

发布于 2011-06-24 20:43:23

  • 您可能希望创建一个没有库依赖关系的可执行文件。
  • 据我所知,静态库应该会更快一些。

缺点:链接共享库不仅会增加可执行文件的大小,还会加载每个可执行文件。如果您在多个可执行文件中使用该库,那么它将在内存中多次出现。

依赖于位置的代码意味着,在创建库时,库在内存中的确切位置是未知的,因此只有相对内存寻址可用(例如:从该指令跳到+50字节,然后从那里执行)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6467892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档