我们有一个使用旧库 libcurl.so.3 的项目和共享库 libprivate.so(私有所以)。系统使用新的系统库 libcurl.so.4 进行了升级。
对于一些内部问题,目前我们不想使用最新的库 libcurl.so.4,我们想使用 libcurl.so.3。
因此,我将 libcurl.so.3 复制到本地文件夹中,并据此设置 LD_LIBRARY_PATH。当我链接我的整个项目时,它说 libcurl.so.4 和 libcurl.so.3 之间存在版本冲突,需要 libprivate.so(libprivate.so 很久以前用 libcurl.3.so 编译过)。
我应该不担心这个警告并继续前进吗?
当我正确指定具有 libcurl.so.3 的 LD_LIBRARY_PATH 时,为什么它从系统目录 /usr/lib64/libcurl.so.4 中获取?当我执行 ldd my_binary 时,它取自 libcurl.so.4。我该如何阻止它?用特定位置指定 -L 也不起作用。修改 /etc/ld.conf 将适用于整个系统。当我运行我的项目时,我想这样做。
指定显式路径它的工作方式类似于 /home/mydir/libcurl.so.3,但我不想这样做。
我只想在执行项目时拥有这些条件。在其他情况下,它可以使用最新的库。
谢谢你的帮助