linux动态链接库---一篇讲尽

在Linux上通过Python引用动态链接库 在Linux上通过Python引用动态链接库 测试环境 centos 6/7 gcc 4.8.5 python 2.7 编译动态链接库 示例程序 app.c app.h foo.py main.c 头文件定义 app.h int add(int a, int b); int mul(int a, int b); 函数实现 app.c int add(int a, int b){ re... 阅读详情
一般我们在Linux下执行某些外部程序的时候可能会提示找不到共享库的错误, 比如:



tmux: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory


原因一般有两个, 一个是操作系统里确实没有包含该共享库(lib*.so.*文件)或者共享库版本不对, 遇到这种情况那就去网上下载并安装上即可.

另外一个原因就是已经安装了该共享库, 但执行需要调用该共享库的程序的时候, 程序按照默认共享库路径找不到该共享库文件.

所以安装共享库后要注意共享库路径设置问题, 如下:

1) 如果共享库文件安装到了/lib或/usr/lib目录下, 那么需执行一下ldconfig命令

ldconfig命令的用途, 主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下, 搜索出可共享的动态链接库(格式如lib*.so*), 进而创建出动态装入程序(ld.so)所需的连接和缓存文件. 缓存文件默认为/etc/ld.so.cache, 此文件保存已排好序的动态链接库名字列表.

2) 如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:

# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

3) 如果共享库文件安装到了其它"非/lib或/usr/lib" 目录下, 但是又不想在/etc/ld.so.conf中加路径(或者是没有权限加路径). 那可以export一个全局变量LD_LIBRARY_PATH, 然后运行程序的时候就会去这个目录中找共享库.

LD_LIBRARY_PATH的意思是告诉loader在哪些目录中可以找到共享库. 可以设置多个搜索目录, 这些目录之间用冒号分隔开. 比如安装了一个mysql到/usr/local/mysql目录下, 其中有一大堆库文件在/usr/local/mysql/lib下面, 则可以在.bashrc或.bash_profile或shell里加入以下语句即可:



一般来讲这只是一种临时的解决方案, 在没有权限或临时需要的时候使用.


转自:http://www.douban.com/note/207473567/

【紫光同创PG2L200H开发板】盘古200Pro+开发板(MES2L676-200HP) 开发板 SMA接口符合标准 SMA 接口规范,可使用”内螺旋+插针“的 SMA 线连接板卡”外螺旋+插孔”的 SMA 接口进行通信,板卡 SMA 接口与 FPGA 的 HSST 收发器的一路 RX/TX 相连,TX信号和 RX 信号都是以差分信号方式通过隔直电容连接 FPGA 和 SMA 接口, TX 发送和 RX 接收数据速率高达 6.6Gb/s。为了减轻带电插拔造成对 FPGA 芯片的损坏,在设计上在 JTAG 信号位置添加了保护二极管来保证信号的电压在 FPGA 接受的范围,避免 FPGA 的损坏。 阅读详情

相关推荐

新手避坑指南:用COMSOL Multiphysics仿真气体放电(汤逊vs.流注)

本文详细介绍了使用COMSOL Multiphysics仿真气体放电的实战指南,涵盖汤逊理论和流注模型的实现方法。通过对比两种放电模型的关键参数和物理场配置,帮助新手避免常见错误,准确预测气体击穿过程。文章还提供了工程应用案例,如高压绝缘子设计优化,展示了仿真技术在电力设备绝缘设计中的实际价值。

weixin_28716181的博客 472

如何获取linux-gate.so.1动态库

前面“Linux应用程序Helloworld入门”已经提到在Linux下每个可执行文件都依赖于几个最为基本的动态库,其中一个就是linux-gate.so.1。 从上面ldd给出的结果可以看出,这个linux-gate.so.1动态库有一些异样,libc.so.6的实际动态库路径在/lib/tls/i686/cmov/libc.so.6,而ld-linux.so.2是在/lib/ld...

kanwoerzi 1031

MDK开发篇:基于立创逻辑派FPGA-G1与Cortex-M1软核的按键控制LED实战

本文详细介绍了基于立创逻辑派FPGA-G1开发板与高云Cortex-M1软核的完整开发流程。通过Gowin云源软件配置软核系统与GPIO外设,并在Keil MDK环境中编写按键控制LED的C程序,最终实现程序固化与上电自启动。教程涵盖硬件配置、软件开发、在线调试与固化部署全步骤,帮助STM32开发者快速上手FPGA软核开发。

weixin_42103128的博客 147

linux gate.so.1,Linux-gate.so.1的含义

Linux-gate.so.1的含义发布时间:2007-07-21 00:27:46来源:红联作者:postnew2.6的内核的系统调用的入口在那里,内核里说是0x80,可实际的机器呢?当你在一个比较新的linux系统下使用ldd命令时,你会经常看到一个比较奇怪的文件名,即linux-gate.so.1:ldd /bin/shlinux-gate.so.1 => (0xffffe000)li...

weixin_42173205的博客 598

Python办公自动化:用python-docx打造专业级Word表格边框(附完整代码)

本文深入探讨了如何利用python-docx库精细控制Word表格边框,实现办公自动化。通过解析底层XML结构,提供了通用的`set_cell_border`函数,并附上完整代码,帮助用户轻松打造符合商业规范的专业级表格,提升报告、合同等文档的生成效率与视觉效果。

weixin_29089057的博客 544

实战避坑:泛微E9流程接口与单点登录(SSO)开发全解析(含自定义Action、Restful API与免密登录)

本文深入解析泛微E9流程接口与单点登录(SSO)开发中的关键技术与避坑指南,涵盖自定义Action开发、Restful API鉴权机制及跨系统单点登录实现。通过实战案例与代码示例,帮助开发者高效完成二次开发,解决系统集成中的数据孤岛问题,提升企业信息化建设效率。

weixin_42549451的博客 672

如何获取Linux-gate.so.1动态库

前面“Linux应用程序Helloworld入门”已经提到在Linux下每个可执行文件都依赖于几个最为基本的动态库,其中一个就是linux-gate.so.1。 从上面ldd给出的结果可以看出,这个linux-gate.so.1动态库有一些异样,libc.so.6的实际动态库路径在/lib/tls/i686/cmov/libc.so.6,而ld-lin...

weixin_34259559的博客 320

ipsec 加密流程(一):ipsec策略匹配

《openswan》专栏系列文章主要是记录openswan源码学习过程中的笔记。 Author: Toney Email: vip_13031075266@163.com Date: 2020.11.22 Copyright: 未经同意不得转载!!! Version:2.6.51.5 Reference:https://download.openswan.org/openswan/ 1. ipsec策略匹配流程(ipsec_tunnel_start_xmit) 注:open...

遇见你是我最美丽的意外 9121

linux libodbc.so.1,CentOS6.0虚拟机上安装nginx启动的错误---缺少libpcre.so.1共享库

虚拟机操作系统为CentOS6.0 32位,安装,配置Nginx1.2.0完毕后,用命令:/usr/local/nginx/sbin/nginx启动nginx时,服务无法启动,出现libpcre.so.1 not found的错误,解决方法如下:先执行下述命令,查看共享库的信息#ldd which /usr/local/nginx/sbin/nginx显示如下:linux-gate.so.1 =&...

weixin_39622988的博客 711

已过tiktok校招客户端,面经分享

面试的话, 一天面完3面, 效率很高, 三天之后就发了offer 字节邮件里面也说了不能泄露面试题, 那我就把我秋招参与美团,字节,腾讯,阿里面试被问到的全部问题总结着写出来了, 这其实是我每一轮面试完之后我都会总结哪里答对了, 哪里没有答对, 总结了一大堆问题出来. 答案未必正确, 我只是给自己写了个简单的一句话概括, 可能不够完善, 建议看官自行回答一下这些问题 二本非科班, 暑假在字节实习过, 不过不是tiktok部门, 因此秋招就没啥时间准备面试了, 只投了几个大厂, 顺便也在字节跨部门转正,

a1472750149的博客 1306

Ubuntu\linux,加载mcp2515的驱动,链接mcp2515,mcp2515的这个驱动默认在linux内核中。jetson nao、香橙派、树莓派

3. 其他文章,还要进行驱动编译就比较复杂了(不推荐)1.树莓派+MCP2515+

pvmsmfchcs的博客 1563

linux 分析 so,Linux-gate.so.1的含义

Linux-gate.so.1的含义[日期:2007-07-21]来源:Linux公社作者:Linuxidc[字体:大 中 小]2.6的内核的系统调用的入口在那里,内核里说是0x80,可实际的机器呢?当你在一个比较新的linux系统下使用ldd命令时,你会经常看到一个比较奇怪的文件名,即linux-gate.so.1:ldd /bin/shlinux-gate.so.1 => (0xffff...

weixin_33201531的博客 482

化工设计软件:PDMS二次开发_(7).数据导入与导出技术

在某些复杂场景下,PDMS提供的标准API接口可能无法满足需求。此时,可以通过自定义API接口来实现特定的数据导入与导出功能。自定义设备导入API接口可以处理更复杂的设备数据格式。# 导入必要的库import pdms_api # 假设有一个PDMS API库# 定义自定义设备数据# 自定义设备导入API接口# 调用自定义设备导入API接口# 输出导入成功的消息print("自定义设备数据导入成功")在PDMS二次开发中,数据的导入与导出是关键的技术环节。

kkchenjj的博客 1484

Linux中动态链接库总结

#参考:#    http://www.abc188.com/info/html/wangzhanyunying/jianzhanjingyan/20080417/70810.html#    http://os.51cto.com/art/201001/176625.htm#    http://os.51cto.com/art/201001/176618.htm[概述]本文

明月江の鱼 9180

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Linux动态链接库

在 Linux 系统中,动态链接库(Dynamic Link Library)和共享库(Shared Library)是指同一概念的不同称谓,通常指的是 .so(shared object)文件。这类库在 Linux 和其他类 Unix 操作系统中非常常见,用于实现程序的模块化和资源的共享。动态链接库/共享库是一种二进制文件,其中包含了一组预先编译好的函数和数据结构,可以被多个不同的程序共享。这些库通常在程序运行时被加载,并且可以被多个进程同时使用。在 Linux 中,动态链接库通常以.so。

分享不一样的技术,与你一起共同成长! 2333

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【给女朋友讲C++】C++的动态链接库

C++构造动态链接库,并使用

A_cainiao_A 1395

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux动态链接库的使用

1、前言   在实际开发过程中,各个模块之间会涉及到一些通用的功能,比如读写文件,查找、排序。为了减少代码的冗余,提高代码的质量,可以将这些通用的部分提取出来,做出公共的模块库。通过动态链接库可以实现多个模块之间共享公共的函数。之前看《程序员的自我修养》中讲到程序的链接和装入过程,这些玩意都是底层的,对于理解程序的编译过程有好处。http://www.ibm.com/developerworks...

好习惯成就伟大 5748

linux下的动态链接库的编码实现

动态链接库正确的名字叫共享库,英文 Shared Library。在windows下表现为 .dll 文件,在linux下表现为 .so 文件。

Remon的专栏 1325

Linux 动态链接库

Linux动态链接库的使用 1、前言   在实际开发过程中,各个模块之间会涉及到一些通用的功能,比如读写文件,查找、排序。为了减少代码的冗余,提高代码的质量,可以将这些通用的部分提取出来,做出公共的模块库。通过动态链接库可以实现多个模块之间共享公共的函数。之前看《程序员的自我修养》中讲到程序的链接和装入过程,这些玩意都是底层的,对于理解程序的编译过程有好处。http://www

my_aoong的博客 933

LINUX动态链接库的使用

****************LINUX动态链接库的使用***********一、编写合格的动态链接库头文件      C语言的头文件,可供一个或多个程序引用,里面一般定义程序所需的常量,自定义类型及函数原型说明等.其中的函数原型说明,则供编译器检查语法,用于排除引用参数时类型不一致的错误.只有编写合格的动态链接库头文件,程序员才能正确使用动态链接库内的函数.    动态链接库头文件要采用C

希望我的程序人生一路彪悍 1165

Linux下的动态链接库.so文件的使用

参考文献: http://blog.youkuaiyun.com/jenshy/article/details/674621 1 简介 大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library)。这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间

放飞梦想,成就未来 3573

Linux动态链接库隔离,LINUX动态链接库高级应用

LINUX动态链接库高级应用在《LINUX下动态链接库的创建与应用》一文中,我介绍了LINUX动态链接库的基本知识.其要点是:用户根据实际情况需要,利用dlopen,dlsym,dlclose等动态链接库操作函数,装入指定的动态链接库中指定的函数,然后加以执行.程序中使用很少的动态函数时,这样的做法尚可.如果程序需要调用大量的动态函数,那么采用这样的编程手段将是非常繁复的,所以我们必须使用一种更为...

weixin_35544017的博客 359

linux下的动态链接库

     这两天在玩QT,准备做一个任务管理器类似的动态线图,找了一会儿决定用QWT。昨天,先是找fedora的源,装了一个5.0.x的,但是我的QT装的比较混乱,装的QT4,(后来发现原先系统带qt3,命令行make,make install ,qwt5.1.1实际用了qt3),然后编译example出了一堆错,明明有头文件,却说找不到一些API的定义。 今早,干脆用eclipse直

ldong2007的专栏 4015

linux下so库放哪个目录,Linux下的动态链接库.so文件的使用

1 简介大家都知道,在WINDOWS系统中有很多的动态链接库(以.DLL为后缀的文件,DLL即Dynamic Link Library)。这种动态链接库,和静态函数库不同,它里面的函数并不是执行程序本身的一部分,而是根据执行程序需要按需装入,同时其执行代码可在多个执行程序间共享,节省了空间,提高了效率,具备很高的灵活性,得到越来越多程序员和用户的青睐。那么,在LINUX系统中有无这样的函数库呢? ...

weixin_30418225的博客 5105

linux 动态链接库 指定,Linux动态链接库

动态链接库是一种通用的软件组件技术,是多种操作系统中提供基本服务的方式。比如Win32内核就是3个DLL文件构成。这种技术在Linux操作系统下也有对应的实现,就是Linux标准对象StandardOjbect,对应的文件扩展名为.so。下面通过一个简单的例子开始介绍Linux标准对象。我们的标准对象文件含有一个函数,不需要声明export导出符号,只需要编译器设置即可。如下:#include #...

weixin_39874269的博客 1091
上一篇: jsoncpp第二篇------API
下一篇: MySQL的mysql_insert_id和LAST_INSERT_ID
crazyhacking
博客等级 码龄15年 299粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值