我正在创建一个使用预编译的第三方共享库的应用程序,我需要在/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“。我得到了一个错误
Pycurl error occured ,
Compile time Version is higher than the Linking version我担心删除应用程序libcurl.so.4,因为它可能会破坏我正在使用的第三方库中的功能(使我的应用程序意义更小),我也不能忽视系统库。
有没有可能使用这两个库而没有任何冲突,就像我上面提到的那样。
PS :设置LD_LIBRARY_PATH也会导致同样的问题
发布于 2013-11-30 03:09:17
在调用可执行文件之前,创建一个设置和导出$LD_LIBRARY_PATH的脚本。一旦脚本退出,该变量就会消失。
发布于 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)。
https://stackoverflow.com/questions/20292028
复制相似问题