返回顶部
首页 > 资讯 > 操作系统 >linux中动态库和静态库的区别有哪些
  • 258
分享到

linux中动态库和静态库的区别有哪些

2023-06-25 17:06:14 258人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关linux中动态库和静态库的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别:1、静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库;动态库在程序

这篇文章将为大家详细讲解有关linux中动态库和静态库的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

区别:1、静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库;动态库在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入,因此在程序运行时还需要动态库存在。2、动态库产生的文件比较小,静态库产生的文件比较大。

教程操作环境:Centos 6系统、Dell G3电脑。

linux中动态库和静态库的相同点和区别

相同点:

无论静态库,还是动态库,都是由.o文件创建的。因此,我们必须将源程序通过GCc先编译成.o文件;

区别:

1、代码载入时间不同

  • 静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库;

  • 动态库在程序编译时并不会被连接到目标代码中,而是在程序运行时才被载入,因此在程序运行时还需要动态库存在

2、编译规则不同

  • 动态库编译

动态类库的名字一般是libxxx.so,动态函数库在编译的时候 并没有被编译进目标代码中,你的程序执行到相关函数时才调用该函数库里的相应函数,因此动态函数库所产生的可执行文件比较小;

动态库编译时:最主要的是GCC命令行的一个选项, -shared 该选项指定生成动态连接库, 例如:

g++ -shared -o libd1.so d1.o    

g++ -shared -o libd2.so d2.o    

  • 静态库编译

类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了,那么你的程序必须重新编译。

UNIX中,使用ar命令创建或者操作静态库

ar     arcHivefile objfile

archivefile:archivefile是静态库的名称

objfile:objfile是已.o为扩展名的中间目标文件名,可以多个并列;

例如:

g++ -o hello.o -c hello.cppar cqs libHello.a hello.o

关于“linux中动态库和静态库的区别有哪些”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: linux中动态库和静态库的区别有哪些

本文链接: https://lsjlt.com/news/306259.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • linux中动态库和静态库的区别有哪些
    这篇文章将为大家详细讲解有关linux中动态库和静态库的区别有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。区别:1、静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库;动态库在程序...
    99+
    2023-06-25
  • linux下静态链接库和动态链接库的区别有哪些
    这篇文章主要讲解了“linux下静态链接库和动态链接库的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux下静态链接库和动态链接库的区别有哪...
    99+
    2023-02-07
    linux
  • 动态库和静态库有什么区别
    这篇文章主要介绍“动态库和静态库有什么区别”,在日常操作中,相信很多人在动态库和静态库有什么区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”动态库和静态库有什么区别”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-20
  • ios动态库和静态库的区别
    目录一、什么是库?二、静态库和动态库的好处使用静态库的好处:动态库使用有如下好处:三、iOS里静态库和动态库形式?四、framework为什么既是静态库又是动态库?五、a与.fram...
    99+
    2022-05-22
    ios 动态库 静态库
  • mfc静态库和动态库有什么区别
    静态库和动态库的区别在于它们在编译时和链接时的处理方式不同。 静态库是在编译时被链接到目标文件中,因此编译后的可执行文件会包...
    99+
    2024-03-02
    mfc
  • 【Linux】静态库和动态库
    Linux为什么不允许普通用户给目录建立硬链接呢? 系统层面上有.和…硬链接指向目录。假设我们是超级用户,允许给目录建立硬链接,给根目录建立硬链接,从根目录开始查找,当查找硬链接的时候就是根目录,这...
    99+
    2023-09-07
    linux 服务器 运维
  • linux中动态链接和静态链接的区别有哪些
    这篇文章主要介绍“linux中动态链接和静态链接的区别有哪些”,在日常操作中,相信很多人在linux中动态链接和静态链接的区别有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux中动态链接和静态链接...
    99+
    2023-06-29
  • 静态和动态sql之间有哪些区别
    小编给大家分享一下静态和动态sql之间有哪些区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!静态或嵌入式 SQL是应用程序中的...
    99+
    2024-04-02
  • 动态网站和静态网站的区别有哪些
    这篇文章主要讲解了“动态网站和静态网站的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“动态网站和静态网站的区别有哪些”吧!网站SEO优化优哪种网站更利于优化呢静态网页是相对于动态网...
    99+
    2023-06-10
  • linux中怎么生成动态库和静态库
    linux中怎么生成动态库和静态库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。动态库的生成:代码如下:#include <stdio.h>#include &...
    99+
    2023-06-09
  • Linux动态库和静态库的示例分析
    今天就跟大家聊聊有关Linux动态库和静态库的示例分析,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。函数库分为静态库和动态库两种。创建Linux静态库和Linux动态库和使用它们在这...
    99+
    2023-06-16
  • 【Linux】动静态库
    文章目录 动静态库1. 设计库1. 静态库打包只有一个.o的压缩包报错1创建.o与.h的压缩包报错2第三方库的使用将头文件和库拷贝对应的系统路径 2. 动态库打包报错运行时报错找到动态...
    99+
    2023-09-02
    linux 运维 服务器
  • 动态和静态ip有什么区别
    小编给大家分享一下动态和静态ip有什么区别,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、区分动态IP因特网,也叫DHCP因特网。IP互联网自动获取。这种互联网...
    99+
    2023-06-15
  • java静态方法和非静态方法的区别有哪些
    这篇文章给大家分享的是有关java静态方法和非静态方法的区别有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、Web应用程序、分布式系统和嵌入...
    99+
    2023-06-14
  • JAVA中静态代理与动态代理的区别有哪些
    这期内容当中小编将会给大家带来有关JAVA中静态代理与动态代理的区别有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。代理模式是java中最常用的设计模式之一,尤其是在spring框架中广泛应用。对于j...
    99+
    2023-05-31
    java 静态代理 动态代理
  • 静态SQL和动态SQL的区别
    静态SQL静态SQL是指那些固定的、可以硬编码到应用程序中的SQL语句。由于静态sql是固定的查询,这些语句可以被分析和优化,不需要出于安全目的进行任何特殊处理。动态SQL动态SQL是指那些不存在的SQL语句。根据用户的输入动态生成并在应用...
    99+
    2023-10-22
  • 如何在 Linux 中使用动态和静态库
    本篇内容介绍了“如何在 Linux 中使用动态和静态库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!了解 Linux 如何使用库,包括静态库...
    99+
    2023-06-15
  • Hive中的动态分区和静态分区的区别
    Hive中的动态分区和静态分区是两种不同的分区方式,它们的区别在于分区的创建和管理方式。 静态分区:静态分区是在创建表时就定义好的...
    99+
    2024-03-12
    Hive
  • linux静态库和动态库的创建与使用方法
    这篇文章主要介绍“linux静态库和动态库的创建与使用方法”,在日常操作中,相信很多人在linux静态库和动态库的创建与使用方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux静态库和动态库的创建与使...
    99+
    2023-06-13
  • C#中静态变量与非静态变量的区别有哪些
    这篇文章主要为大家展示了“C#中静态变量与非静态变量的区别有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中静态变量与非静态变量的区别有哪些”这篇文章吧。静态变量:静态变量使用 stat...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作