首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在linux中是否可以禁止系统库中的用户库

在linux中是否可以禁止系统库中的用户库
EN

Stack Overflow用户
提问于 2013-11-30 03:07:06
回答 2查看 80关注 0票数 1

我正在创建一个使用预编译的第三方共享库的应用程序,我需要在/etc/ld.so.conf.d/ files.To .conf下设置LD_LIBRARY_PATH或创建一个conf文件,我的问题是/usr/lib/下已经有一个系统libcurl.so.4。第三方库也有一个libcurl.so.4。如果我创建了/etc/ld.so.conf.d/application.conf文件,我就不能使用"YUM installer“。我得到了一个错误

代码语言:javascript
运行
复制
Pycurl error occured ,

Compile time Version is higher than the Linking version

我担心删除应用程序libcurl.so.4,因为它可能会破坏我正在使用的第三方库中的功能(使我的应用程序意义更小),我也不能忽视系统库。

有没有可能使用这两个库而没有任何冲突,就像我上面提到的那样。

PS :设置LD_LIBRARY_PATH也会导致同样的问题

EN

回答 2

Stack Overflow用户

发布于 2013-11-30 03:09:17

在调用可执行文件之前,创建一个设置和导出$LD_LIBRARY_PATH的脚本。一旦脚本退出,该变量就会消失。

票数 1
EN

Stack Overflow用户

发布于 2013-11-30 14:28:07

如果您有两个冲突的库,其中一个是系统库,另一个是用户应用程序,不要将application.conf放入/etc/ld.so.conf.d/。而不是使用~ your _user_name/custom_conf之类的内容,将您的application.conf文件放在那里(最终您可能需要编辑它,将路径添加到正确版本的libcurl.so.4)。libcurl.so.4不应该在系统目录中,而应该在~your_user_name/lib中。你可以为你的应用程序做一个包装器,你可以按照Ignacio Vazquez-Abrams的建议设置$LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~your_user_name/lib,或者编译你的应用程序,明确指出要链接的库(使用链接器标志-L /full/path/to/your/libcurl.so.4)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20292028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档