Linux_编译和动态库链接

news/2025/2/28 16:03:24/文章来源:https://www.cnblogs.com/ytwang/p/18743462

报错

 error while loading shared libraries: libpthread_rt.so.1: cannot open shared object file: No such file or directory   有没有库,find 查到查不到库,共享库路径没有指定

变量

PATH            保存可执行文件程序路径,
LIBRARY_PATH    是在程序编译期间查找动态链接库时指定的查找共享库的路径 
LD_LIBRARY_PATH 环境变量主要是用于指定动态链接器(ld)查找ELF可执行文件运行时所依赖的动态库(so)的路径,其内容是以冒号分隔的路径列表	 标准库路径/lib和/usr/lib中继续搜索有当程序所需的依赖库不是系统标准安装的库或对库的版本特定要求时,可以指定 LD_LIBRARY_PATH环境变量实现。LIBRARY_PATH 和LD_LIBRARY_PATH 共同点都是库的路径,而PATH是可执行文件的路径
LIBRARY_PATH 和 LD_LIBRARY_PAT H参数说明  LIBRARY_PATH is used by gcc before compilation  编译前LD_LIBRARY_PATH  编译后链接
GCC编译、链接生成可执行文件时,动态库的搜索路径就包含LIBRARY_PATH	
链接生成二进制可执行文件后,运行该程序加载动态库文件时就会搜索包含LD_LIBRARY_PATH路径下的动态库	

命令

ldd 命令

ldd 实际上并不加载共享库到内存中,它只是模拟了这一过程,因此不会改变系统的运行环境。此外,由于 ldd 依赖于动态链接器,它可能无法正确报告那些在运行时通过其他机制(如运行时链接器或其他程序)加载的共享库
查看可执行文件或库文件本身对所依赖的库的情况   ldd   ~/myprogramldd(英文全拼:list dynamic dependencies)命令列出程序或库文件的动态依赖关系(所依赖的共享库列表ldd是个脚本 质是通过 ld-linux.so(elf 动态库的装载器)来实现type  ldd file  /usr/bin/ldd第1列:程序需要依赖什么库第2列:系统提供的与程序需要的库所对应的库第3列:库加载的开始地址

ld 命令

动态库搜索路径可以通过 ld --verbose	  

ldconfig命令

ldconfig是一个动态链接库管理命令,命令的用途,
主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,
搜索出可共享的动态链接库(格式如前介绍,lib*.so*),
进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,1.往/lib和/usr/lib里面加东西,是不用修改/etc/ld.so.conf文件的,但是添加完后需要调用下ldconfig,不然添加的library会找不到。2、如果添加的library不在/lib和/usr/lib里面的话,就需要修改/etc/ld.so.conf文件,往该文件追加library所在的路径,然后也需要重新调用下ldconfig命令。或者在/etc/ld.so.conf.d/下添加*.conf的文件并追加library的路径,然后执行ldconfig。比如在安装MySQL的时候,其库文件/usr/local/mysql/lib

ln 命令

3.ln [源文件/目录] [目标软链接]	ln -s 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车载高性能计算平台HPC2.5

经纬恒润新一代高性能计算平台HPC产品选用TI TDA4及Infineon TC397两款高性能芯片,搭载Linux及RTOS两种操作系统,集成AutoSAR及自研应用框架(AF)两类中间件,可满足复杂运算、高实时等不同应用程序的需求。 高性能计算平台(HPC)是新一代智能汽车的核心技术,是支撑“…

FANUC法那科机器人保养的要点

每一台机器人均不可或缺地需要进行预防性保养,这是确保其于生产线上持续展现最佳性能与实现高度一致性的基石。若忽视了定期对机器人进行预防性保养检查,很可能会导致其零部件遭受损坏或突发故障,进而引发生产效率的减缓,乃至生产线的全面停机。恰当的保养措施,不仅能够显…

redis bind protected-mode

概要redis bind、protected-mode 配置 安装并启动 yum install -y redis systemctl enable --now redis # 使用 redis-server 命令会在前台启动运行,可以跟个 .conf 文件 根据配置文件启动修改配置文件 # 直接编辑配置文件 (本篇文章使用此方法) vi /etc/redis.conf# 同时redis…

看中国版“ADP”如何助力泰森等在华外企应对薪酬管理挑战

“工欲善其事,必先利其器”,用软件实现复杂经营环境下的薪酬管理提效提质,是包括外企在内所有企业释放人力价值、迈向精细化管理的重要手段;也是实现薪酬价值最大化,打造经营韧性、驱动增长的必经之路。调查表明,在全球化的浪潮中,71% 的企业将人力资源相关问题视为国际…

day08 作业

day08 作业 1.使用linux实现命令别名,实现如下效果,思考,如何生成la命令。 [root@yuanlai-0224 ~]# la /var/log/ total 1.9M drwxr-xr-x. 6 root root 4.0K Mar 6 03:33 . drwxr-xr-x. 19 root root 267 Feb 26 03:27 .. drwxr-xr-x. 2 root root 204 Feb 26 03:01 an…

ABP更换MySql数据库

原因:ABP默认使用的数据库是sqlServer,本地没有安装sqlServer,安装的是mysql,需要更换数据库 ABP版本:9.0 此处以官网TodoApp项目为例打开EntityFrameworkCore程序集,可以看到默认使用的是sqlServer,此处截图为已安装mysql依赖包步骤一、安装mysql依赖包 https://abp.io…

SimpleCalculator缺陷分析与二次开发

C语言计算器项目: 项目名称:Simple Calculator GitHub 地址: https://github.com/example/simple-calculator 项目简介 这是一个命令行计算器,支持加、减、乘、除运算。 代码结构简单,适合初学者阅读和修改。 主要功能 支持加、减、乘、除运算。 通过命令行交互输入运算符和数…

基于 Arria 10 FPGA 的 DP 接口开发板电路研制

1.引言物联网,智能汽车,云计算在我们生活中已经耳熟能详,随着FPGA的更新进步,在各类电子科技中不断发力,让我们的生活变得更加智能和便捷。下面给大家介绍一下来自Intel的FPGA Arria 10以及明德扬研发的一款Arria 10的开发板电路设计。 2.Arria 10 FPGAIntel Arria10 FPGA…

西数硬盘二次开盘数据恢复之国外损坏带回在北京恢复失败盘片划伤

这是一块西部数据2T的移动硬盘,北京客户寄过来的,用户在国外工作的时候就损坏不识别了,但当地修复不了,回国后就在北京找了一家数据恢复公司进行处理,但由于盘片有划伤,没能恢复出数据,后来客户找到我们,想再尝试一下,因为里面有海外工作时几百G的工程项目资料,比较重…

mysql多表

一、表格 员工表 sid:员工编号、name:姓名、age:年龄、woektime_start 入职时间,incoming工资 dept2 部门编号部门表 dept1 部门编号,dept_name 部门名称二、建表语句 CREATE table dept( dept1 VARCHAR(6), dept_name VARCHAR(20)) default charset=utf8; INSERT into d…

重磅 | Cloud Ace 推出 GenAIOps 服务:加速企业生成式 AI 商业落地

Cloud Ace 宣布推出 GenAIOps 服务,主要业务是面向国内外企业:提供与生成式 AI 运维支持相关的专业服务及运维服务 转售符合客户需求的高度创新产品及咨询服务该服务旨在以尖端技术赋能企业,为客户提供最优的 AI 解决方案,最大化生成式 AI 的商业价值与成果。联系我们—Clo…

SAP 中类的使用

一、事务代码:SE24 二、步骤 2.1、创建类:se24实例化类型public:该类可以在任何地方进行初始化Protected:只能在自身和或类的子类中进行初始化Private: 只能自身的类中进行初始化Abstract: 不可以创建实例。 2.2、创建属性 2.2.1、选择属性 在属性分页签中先按上图填写好属性…