动态库 的制作和使用

news2024/11/20 22:40:05

文章目录

    • 重要命令
    • 制作流程和使用
    • 动态库加载失败&解决
      • 失败的原因:
      • ldd命令
      • 系统加载动态库(共享库)的顺序
      • 问题解决途径
        • 一、修改环境变量
        • 二、修改/etc/ld.so.cache文件列表
        • 三、将动态库放在/lib 或 /usr/lib文件中(==不推荐==)

重要命令

  1. gcc -c -fpic xxx.c

  2. gcc -shared xxx.o libname.so

在这里插入图片描述

制作流程和使用

在这里插入图片描述
-fpic:生成与位置无关的文件
和静态库的流程一样,仅仅命令有区别。
👉👉👉静态库的制作和使用

动态库加载失败&解决

失败的原因:

系统找不到库文件的路径

ldd命令

可以通过该命令查看动态库的依赖关系,如下如所示:
在这里插入图片描述

系统加载动态库(共享库)的顺序

系统通过动态载入器获取动态库的绝对路径,搜索文件顺序如下所示:

在这里插入图片描述

问题解决途径

上边知道了搜索路径,我们可以将动态库放到任意一个位置,环境变量或者其他文件中
查看动态库路径

pwd:查看当前路径

一、修改环境变量

1. 放到环境变量中(终端级别

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/wlm/Linux/lesson06/lib

👆上边指令表示在环境变量中追加动态库文件路径

echo $LD_LIBRARY_PATH

查看刚刚添加的环境变量
注意: 该方法只在当前终端有效,重新打开终端后失效

2. 在~/bashrc文件中添加环境变量,使其永久有效 (用户级别
首先进入家目录(~),然后进行下面操作:

命令1:vim .bashrc :打开bashrc文件

在文件最后添加👇:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/wlm/Linux/lesson06/lib

命令2. .bashrc:使修改后文件生效
命令2:source .bashrc 两个命令一个意思

3.在/etc/profile文件中添加环境变量,使其永久有效 (系统级别

sudo vim /etc/profile
在文件最后添加:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/wlm/Linux/lesson06/lib

source /etc/profile:使文件生效

二、修改/etc/ld.so.cache文件列表

sudo vim /etc/ld.so.conf
动态库文件路径放在该文件中

sudo ldconfig:使文件生效

三、将动态库放在/lib 或 /usr/lib文件中(不推荐

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

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

相关文章

互联网大厂技术-Redis-集群模型、架构原理、难点应用场景、高频面试问题详解

目录 一、Redis集群模型 1.1、主从模式 1.1.1 主从模式优缺点 1.2、哨兵模式 1.2.1 哨兵模式的作用: 1.2.2 哨兵实现原理 1.2.3 主观下线和客观下线 1.2.4 哨兵模式优缺点 1.3、各大厂的Redis集群方案 1.3.1 客户端分片 1.3.2 代理分片 Twemproxy的优点…

ESP32开发环境的搭建

ESP32开发环境的搭建 Windows11WSL2 Ubuntu22.04 下载ESP32开发所需的库和工具链 下载ESP-IDF库安装必要的工具sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python…

收款单签字时,报”结算信息表体中本方银行账户、现金账户、票据号 (商业汇票号)不能同时为空,签字操作失败“,能否取消这个校验??

大概整理,如有不当,欢迎留言指出,谢谢! 收款单签字时,报”结算信息表体中本方银行账户、现金账户、票据号 (商业汇票号)不能同时为空,签字操作失败“,能否取消这个校验?&#xff1f…

设计模式(六)-----适配器模式(Adapter Pattern)

目录 什么是适配器模式适用场景适配器模式的三种实现方式1. 类的适配器模式2. 对象的适配器模式3. 接口的适配器模式 总结 什么是适配器模式 适配器模式主要用于将一个类的接口转化成客户端希望的目标类格式,使得原本不兼容的类可以在一起工作,将目标类…

2023年7月北京/广州/深圳制造业产品经理NPDP认证招生

产品经理国际资格认证NPDP是新产品开发方面的认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年,是…

Windows 10 实现实时文件夹同步的方法

什么是实时同步? 实时文件夹同步是一种确保在满足一定条件时立即更新一个或多个文件夹的过程。与传统的文件同步方法相比,它能够更及时地检测到源文件夹的变化并将这些变化快速复制到目标文件夹。 实时文件夹同步可以采用单向同步或双向同步的模式…

Flutter 状态管理框架 Provider 和 Get 分析

状态管理一直是 Flutter 开发中一个火热的话题。谈到状态管理框架,社区也有诸如有以Get、Provider为代表的多种方案,它们有各自的优缺点。面对这么多的选择,你可能会想:「我需要使用状态管理么?哪种框架更适合我&#…

数据安全之风险评估(三)

网络数据安全风险评估坚持预防为主、主动发现、积极防范,对数据处理者数据安全保护和数据处理活动进行风险评估,旨在掌握数据安全总体状况,发现数据安全隐患,提出数据安全管理和技术防护措施建议,提升数据安全防攻击、…

ElasticSearch简单介绍以及基本概念阐述

文章目录 一、ES是什么二、ES主要功能1、实时数据搜索和分析:2、分布式架构:3、全文搜索:4、实时数据分析:5、多种数据类型支持:6、实时监控和可视化:7、安全性和访问控制:8、多种集成和扩展&am…

java-error-No converter found for return value of type

java-error-No converter found for return value of type 问题描述 : 日志如下 : 14-Jul-2023 15:27:46.747 严重 [http-nio-8080-exec-5] org.apache.catalina.core.StandardWrapperValve.invoke 在路径为[]的上下文中,Servlet[action]的…

掘金量化—Python SDK文档—3.变量约定

目录 Python SDK文档 3.变量约定 3.1 symbol - 代码标识 3.1.1交易所代码 3.1.2交易标的代码 3.1.3symbol 示例 3.1.4期货主力连续合约 3.2mode - 模式选择 3.2.1实时模式 3.2.2回测模式 3.3context - 上下文对象 3.3.1context.symbols - 订阅代码集合 3.3.2context.now - 当…

【PHP面试题46】php-fpm的工作模式是什么,如何进行配置?

文章目录 一、前言二、PHP-FPM的工作模式三、进程数量配置依据四、php-fpm常见的配置参数4.1 pm.max_children4.2 pm.start_servers4.3 pm.min_spare_servers4.4 pm.max_spare_servers4.5 pm.max_requests4.6 request_terminate_timeout4.7 max_input_time4.8 upload_max_files…

UE4 常用控制台命令

ue4执行控制台命令有两种方式,一是在运行时按~呼出控制台输入命令后回车执行,二是调用蓝图函数ExecuteConsoleCommand函数传入参数执行命令,需要注意shipping包无法执行控制台命令 常用命令: Stat FPS 显示帧率 Stat Slate 显示…

激斗云计算:互联网大厂打响新一轮排位战

大模型如同一辆时代列车,所有科技大厂都想上车。 自去年底ChatGPT一炮而红,国内外数十家科技大厂、创业公司、机构相继下场,一时间掀起大模型的热浪。 《中国人工智能大模型地图研究报告》显示,截至今年5月28日,中国…

http连接处理(中)(四)

2. 结合代码分析请求报文解析 上一节我们对http连接的基础知识、服务器接收请求的处理流程进行了介绍,接下来将结合流程图和代码分别对状态机和服务器解析请求报文进行详解。 流程图部分,描述主、从状态机调用关系与状态转移过程。 代码部分&#xff…

内 网 优 化

拓扑 需求 1)所有部门中都使用了网关冗余技术,为了增强网关稳定性和冗余性 -配置VRRP -SW5是VLAN10和VLAN20的Master ,是VLAN30的Backup -SW6是VLAN10和VLAN20的Backup,是VLAN30的Master 2)交换机之间存在很多冗余链路,必须防止环…

AtcoderABC253场

A - Median?A - Median? 题目大意 给定三个整数a、b和c&#xff0c;判断b是否是这些整数的中位数。 思路分析 判断升序降序两种情况 时间复杂度分析 O(1) 代码 #include<iostream> using namespace std; int main() { int a,b,c; cin>>a>>b>>…

Non-Local Video Denoising by CNN

摘要 Non-local patch based methods were until recently state-of-the-art for image denoising but are now outper formed by CNNs. Y et they are still the state-of-the-art for video denoising, as video redundancy is a key factor to attain high denoising perfor…

JavaWeb——Cookie和Session的工作流程

目录 一、定义 1、Cookie定义 2、Session 二、Cookie和Session的联系和区别 1、联系 2、区别 一、定义 1、Cookie定义 Cookie是浏览器在本地存储数据的一种机制&#xff0c;来自于服务器。 服务器在响应中会带有Set-Cookie字段&#xff0c;通过这个字段就可以把要保存在浏…

及早识别面肌痉挛症状,科学治疗是关键!

随着现代社会的快节奏生活和各种压力的增加&#xff0c;面肌痉挛这一神经肌肉紊乱性疾病的发病率也逐渐上升。面肌痉挛是指由于面肌肌肉群异常收缩而导致的面部肌肉抽搐和不自主运动的症状。如果不及早识别和治疗&#xff0c;将对患者的生活质量产生严重影响。因此&#xff0c;…