`
splayx
  • 浏览: 82831 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C++动态链接库运行时找不到怎么办

 
阅读更多

C++在编译时,可以指定动态库的路径,但是运行的时候,

或者从一台机器拷到另一台的时候,它需要从系统的配置目录中寻找对应的动态库,

有可能系统的默认的目录只是/usr/lib64/,但是你的放在/usr/local/lib中,

比如有个libease.so放在了/usr/local/lib中,用ldd查看

ldd a.out 
	linux-vdso.so.1 =>  (0x00007fffebdff000)
	libease.so => not found
	libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f99640ae000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f9963e2b000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f9963c15000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f996388b000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f99643cb000)

 这时候需要在/etc/ld.so.conf.d/中配置,

vim /etc/ld.so.conf.d/libease.conf 写入

/usr/local/lib

使用命令ldconfig使之生效就可以看到:

libease.so => /usr/local/lib/libease.so (0x00007fb7695e8000)

 

也可以把/usr/local/lib/加入系统默认寻找路径

编辑/etc/ld.so.conf

include /etc/ld.so.conf.d/*.conf                                                
include /usr/local/lib                                                          
include .  

 也要ldconfig一下。。

 

还有一个办法就是设置LD_LIBRARY_PATH环境变量。

 

export LD_LIBRARY_PATH=/path/to/lib

可以暂时可用

分享到:
评论

相关推荐

    C++动态库与静态库的比较

    (3)在动态库的情况下,有两个文件,一个是引入库(.LIB)文件,一个是DLL文件,引入库文件包含被DLL导出的函数的名称和位置,DLL包含实际的函数和数据,应用程序使用LIB文件链接到所需要使用的DLL文件,库中的函数和...

    把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载

    介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资源中释放出来,通过静态加载延迟实现DLL函数的动态加载,程序退出后实现临时文件的自动删除,从而为解决“DLL Hell”提供...

    能使用boost.python的MinGw(GCC)动态链接库

    使用g++编译常见的问题就是找不到文件和pyconfig.h等文件. 这些文件其实在boost的目录下面和C:\Python27\include目录中. 为了使用方便,将整个\boost_1_49_0\boost\目录复制到MinGw的include目录下面; 将C:\Python...

    C++日志类libglog使用

    测试程序中,我使用的动态链接库方式。(Debug模式中代码生成为MDd,Release为MD)。lib是截止现在2015-11-04-21:35是最新的。采用VS2010编译,MTd,MT,MDd,MD方式编译在测试项目中都有提供。 博文地址: ...

    如何正确使用Nodejs 的 c++ module 链接到 OpenSSL

    我们本来的期望是,需要用户安装有Openssl的运行库, 然后我们的c++ module 动态链接到Openssl的so库上来运行。 起初一切看起来还不错,直到我们发现这个openssl的函数不能工作: PKCS7_sign() PKCS7_sign ( ) 我们...

    VS2010中使用C++创建和使用DL.docx

    有的时候,DLL并没有提供DllMain函数,应用程序也能成功引用DLL,这是因为Windows在找不到DllMain的时候,系统会从其它运行库中引入一个不做任何操作的默认DllMain函数版本,并不意味着DLL可以抛弃DllMain函数。...

    新手学习C++入门资料

    声明函数时可以包含一个或多个用不到的形式参数。这种情况多出现在用一个通用的函数指针调用多个函数的场合,其中有些函数不需要函数指针声明中的所有参数。看下面的例子: int fun(int x,int y) { return x*2;...

    electronedge.dll

    也是一种代码库的形式,与静态链接库相比,它是在每次程序运行的时候去调用,而静态链接库指令都会被打包到最后的exe文件里,所以如果函数有什么变化那就需要重新生成exe,那动态链接库就不需要这么做了。...

    C++ Primer第四版【中文高清扫描版】.pdf

    【原书名】 C++ Primer (4th Edition) 【原出版社】 Addison Wesley/Pearson 【作者】 (美)Stanley B.Lippman,Josée LaJoie,Barbara E.Moo 【译者】 李师贤 蒋爱军 梅晓勇 林瑛 【丛书名】 图灵计算机科学丛书 ...

    Visual_C++精彩实例详解

    2. 本书例程大部分采用的是动态链接,读者在未装VC的PC机上运行每章例程中的可执行文件时,可能会出现找不到mfc42.dll等动态链接库的情况, 读者此时可采用静态链接,具体操作为:VC中菜单Project->Setting->...

    Visual C++实践与提高-COM和COM+篇『PDF』

    因文件超过20M不能上传,所以拆分为两个文件分次上传 第1章 COM背景知识 1.1 COM的起源 1.1.1 软件业面临的挑战 1.1.2 传统解决方案 1.1.3 面向对象程序设计方法 1.1.4 最终解决方案:组件软件 1.1.5 面向对象的...

    C++ DLL反汇编&C# Dll反汇编工具

    depends22_x64 可查看C++ DLL 动态库,暴露接口函数,库文件是32位还是64位的 1. 双击depends.exe ,运行该程序。 2. 将可执行文件拖到该窗口中。稍等片刻,出现depends 分析结果。 3. 左侧的树控件,显示了该exe ...

    C++网络爬虫项目

    由WebCrawler对象在从MultiIo对象中等到套接字描述符可读时动态创建,通 过Socket对象接收超文本传输协议响应。WEBCRAWLER 网络爬虫实训项目 9 2.3.4. 网络爬虫(WebCrawler) 代表整个应用程序的逻辑对象,构建并维护...

    C/C++笔试题(附答案,华为面试题系列)

    2.运行时动态链接(run-time dynamic linking),运行时可以通过LoadLibrary或Loa dLibraryEx函数载入DLL。DLL载入后,模块可以通过调用GetProcAddress获取DLL函数的 出口地址,然后就可以通过返回的函数指针调用...

    Qt和Matlab混合编程Demo,有bug版

    C和C++文件夹分别是生成的C或C++的动态链接库等文件 CTest2是Qt的工程 需要修改的地方有很多,首先是.pro文件中的路径, 然后运行有错误的地方可以先备注掉, 将dll和ctf文件复制到运行生成的debug文件中。 = =剩下...

    基于Qt5框架开发的轻量级跨平台网络工具库 .rar

    当时,本硕教学、项目开发采用的均为Visual C++ ,按照导师的要求,学生们的所有算法模块需要封装为动态链接库,以便可以很快的嵌入到新的项目中使用。作为对计算机稍微熟悉一点的助教,我和几个同事一起规范了函数...

    C++Builder精彩编程实例集锦的源代码(1,2,3部分).rar

    实例070 如何析取动态链接库中的图标 实例071 如何设置Edit组件的文本选择范围 实例072 如何将小写金额转换成大写金额 实例073 如何将全角字符串转换成半角字符串 实例074 如何按照指定的有效位数转换数字 实例...

    qt子目录项工程模板及动态库二进制兼容测试实现

    本篇文章是在qtcreator源码学习的支线知识,主线在这里1...由于LeeLabel是子类,理论上在不考虑二进制兼容时运行会出问题,通过d指针来实现兼容; 博文链接:https://blog.csdn.net/Bing_Lee/article/details/110846531

    找不到MSVCR110.dll,无法执行代码 - 解决方案 - win10 、 win11

    Msvcr110.dll 是与 Microsoft Visual C++ 包关联的 DLL(动态链接库)文件。这是用 Visual C++ 开发的软件所需要的文件。如果 Windows 11 中缺少 msvcr110.dll 文件,某些程序将无法运行。 安装相关程序包即可解决...

Global site tag (gtag.js) - Google Analytics