之前一直不是很理解静态链接库和动态连接库的区别,今天在此做一下汇总。首先从下图了解一下文本文件是如何编译成二进制格式的。

如何区分静态链接库和动态连接库

【静态链接库】是指在编译的连接阶段将库函数嵌入到应用系统程序的内部。但是如何多次调用,则库函数会被调用很多次,造成极大的空间浪费。他的优势在于,应用程序可以独立运行,因为静态连接的时候已经将所需的组件都已经加载到应用程序中,不需要对于的.a、.lib文件。

静态库对于库函数的连接是放在编译时期完成的。Linux静态库命名规则,必须是lib[your_library_name].a :lib为前缀,中间是静态库名,扩展名为.a. 可以通过ar工具将目标文件打包成.a静态库文件。

【动态链接库】会将公用的库函数以及相关组件都存放在一个地方,只是将地址信息告诉连接器,只有应用系统在调用该动态库时才会加载到内存。其缺点是应用程序不能独立运行,需要操作系统中安装对应的dll以及运行环境。优点是可执行文件较小。动态库后缀一般为.so、.dll。

 

 

相关文章:

  • 2021-04-18
  • 2022-12-23
  • 2021-06-11
猜你喜欢
  • 2021-09-29
  • 2021-06-01
  • 2022-02-11
  • 2021-08-20
  • 2021-04-06
  • 2022-01-19
相关资源
相似解决方案