【Linux】动态链接和静态链接

news2024/11/17 10:46:18

函数库一般分为静态库和动态库两种

  • 动态库:使编译器对用户的程序进行动态链接
    动态链接:拷贝的是动态库中当前程序所需代码的地址到可执行程序中的相关位置,可在执行时链接到动态库中的相关,即动态链接的可执行程序再运行时仍然依赖于动态库,若动态库缺失,程序则无法运行
  • 静态库:使编译器对用户的程序进行静态链接
    静态链接:直接把静态库文件中的所需代码拷贝到可执行文件中,链接成功后的可执行程序不依赖任何库即可正常运行

Linux下默认进行的是动态链接
ldd 脚本可查看列出动态库依赖关系
在这里插入图片描述
libc.so.6 表示用于动态链接的库为C动态库,libXXX.so.6 ,so为动态库后缀

可主动进行静态链接来观察
一般云服务器默认只有动态库,静态库需手动安装
yum install glibc-static libstdc++-static -y
主动静态链接
gcc test.c -o test-static -static
再次使用ldd提示不是动态链接的可执行程序
在这里插入图片描述
查看静态链接程序的文件属性
在这里插入图片描述
再查看一下动态链接的程序的文件属性
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/493076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

了解设计模式

https://github.com/WittyKyrie/UnityUtil/blob/main/%E5%B8%B8%E7%94%A8%E5%B7%A5%E5%85%B7/Object 代码仓库↑ 【游戏开发设计模式】单例模式,要提防的设计模式!!_哔哩哔哩_bilibili 参考↑ 组合模式: 继承会造成代码复用量…

Django框架的源码解析

简述从django-admin startproject [name]开始 小结 django.core.management init.py 1. 5个方法2. ManagementUtility 类 小结 base.py 1. 2个方法:2. CommandError(Exception):3. SystemCheckError(CommandError):4. CommandParser(ArgumentParser):5. DjangoHelpF…

【Gator Cloud】架构篇 - 提供基于云原生的数据安全保护

随着云计算的成熟和云计算系统的广泛使用,越来越多的企业选择将新业务部署到云上。但是,上云并不意味着就能够充分利用云平台的优势。目前,大部分的云化应用,依然还是基于传统的软件架构来搭建的,仅仅是移植到云上去运…

【python脚本系列】python脚本2——PDF转word文档

只需2行代码,轻松将PDF转换成Word 机器学习算法那些事 2023-05-05 18:58 发表于广东 编辑:数据分析与统计学之美 可将 PDF 转换成 docx 文件的 Python 库。该项目通过 PyMuPDF 库提取 PDF 文件中的数据,然后采用 python-docx 库解析内容的布局…

【面试题】关于JavaScript实现继承的六大方案,你都了解过吗?

​ 大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 前言 面试官:“你说说 JavaScript 中实现继承有哪几种方法?” …

相交链表 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。

题目 解析 题目要求 如果相交 就返回交点如果不相交 就返回NULL 思路 1.通过题目的描述我们可以知道,两个单链表相交只有一种形式 并不存在下面的的形式 我们已经明确了单链表相交的形式, 那我们要如何判断两个单链表相交呢 这里给出一种做法&…

Mysql安装5分钟解决

文章目录 1.下载安装包:2.MySQL的初始配置3.安装mysql的服务:4.初始化MySQL命令:5.开启mysql服务命令:6.登录验证:7.修改密码: 1.下载安装包: 直接通过这里安装MYSQL5.7下载链接 或者进入MySQL…

干翻Mybatis源码系列之第七篇:Mybatis提供的集成缓存方案

第一章:Mybatis Orm的缓存 Mybatis定义了一个对象缓存,是Mybatis对缓存的封装,为了屏蔽实现的差异,这被定义成了一个接口Interface,这样的话,Mybatis的缓存基本上是存储于JVM内存中的。 一:Ca…

信息技术服务知识笔记

一、运维 1、基础环境运维服务 对保证信息系统正常运行所必需的电力、空调、消防、安防等基础环境的运维。包括:机房电力、消防、安防等系统的理性检查及状态监控、相应支持、故障处理、性能优化等服务 2、硬件运维服务 对硬件设备(网络、主机、存储…

6.2.1mnist _eval

之前在调试6.2.1mnist _eval代码的时候,出现了下面的错误 //下面不阐述本人遇到的错误,直接告诉大家解决办法(以老师给的源代码进行演示) 首先,打开第6章的源代码 //点击程序与数据拆分的文件夹, 并将三个…

3、Flutter项目搭建

一、搭建项目 1.1 搭建空壳项目 接上篇的项目搭建、本篇将继续搭建各个界面.当BottomNavigationBar搭建起来后,在各个界面,没有显示对应的元素,因此我们在包含它的Scaffold中,添加body,这样让每个界面撑起来.每次点击就切换对应的界面. 那么我们创建一个_RootPageState中的私…

【Python】scikit-plot可视化模型(含源代码)

文章目录 一、前言二、功能1:评估指标可视化2.1 scikitplot.metrics.plot_confusion_matrix2.2 scikitplot.metrics.plot_roc2.3 scikitplot.metrics.plot_ks_statistic2.4 scikitplot.metrics.plot_precision_recall2.5 scikitplot.metrics.plot_silhouette2.6 sci…

操作系统学习01

1、什么是操作系统? 通过以下四点可以概括操作系统到底是什么: 操作系统(Operating System,简称 OS)是管理计算机硬件与软件资源的程序,是计算机的基石。操作系统本质上是一个运行在计算机上的软件程序 &a…

微前端 qiankun@2.10.5 源码分析(一)

微前端 qiankun2.10.5 源码分析(一) 前言 微前端是一种多个团队通过独立发布功能的方式来共同构建现代化 web 应用的技术手段及方法策略。 Techniques, strategies and recipes for building a modern web app with multiple teams that can ship feat…

Figma转换为sketch,分享这3款工具

在我们的设计工作中,我们经常会遇到各种各样的设计文件相互转换的问题。 你经常为此头疼吗?当你遇到Figma转换Sketch文件的问题时,你是如何解决的?Figma转换Sketch文件有工具吗? 根据众多设计师的经验,本…

在竞争激烈的移动应用市场中获得成功,掌握决胜Framework技术

为何要学习framework? Framework,指的是对应用程序开发所需的核心工具和组件的封装和提供。在Android开发中,Framework是整个开发过程中的核心组成部分,提供了许多功能和服务,包括UI组件、数据存储、网络通信、多媒体…

第二十四章 策略模式

文章目录 前言传统方式解决鸭子问题完整代码抽象鸭子类野鸭子类北京鸭子类玩具鸭子类 一、策略模式基本介绍二、策略模式解决鸭子问题完整代码飞翔接口 FlyBehavior飞翔接口的子类实现飞翔技术高超 GoodFlyBehavior不会飞翔 NoFlyBehavior飞翔技术一般 BadFlyBehavior其他行为接…

文献阅读 Meta-SR: A Magnification-Arbitrary Network for Super-Resolution

题目 Meta-SR: A Magnification-Arbitrary Network for Super-Resolution Meta-SR: 用于超分辨率的任何放大网络 摘要 由于DCNN的发展,最近关于超分辨率的研究取得了巨大成功。然而,任意比例因子的超分辨率长期以来一直被忽视。以往的研究者大多将不同…

Stable-Diffusion AI画画本地搭建详细步骤

ChatGPT出来后,第一次感觉到人工智能真的可能要来了,因此也顺便尝试了下开源AI画画的搭建。网络上写的教程总是不那么面面俱到,因此本文参考了3篇文章才成功把Stable-Diffusion 本地搭建搭建了起来。参考教程在文末。 本文是本地搭建AI画画&a…

C/C++内存泄露检查利器—valgrind

1、Valgrind概述 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。 Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟…