我如何强制将我的代码使用的共享库版本从某个文件夹更改为 /usr/local/lib/ 中的默认版本?

我如何强制将我的代码使用的共享库版本从某个文件夹更改为 /usr/local/lib/ 中的默认版本?

我在 Linux (Ubuntu) 上构建了一个应用程序。涉及的步骤是./configure使用某些选项,make然后执行该应用程序。

默认情况下,该应用程序链接/使用文件夹 /usr/local/lib/libstarpu.so.0 中的共享库,但我已下载此 Starpu 的最新源代码并将其安装在我的主目录 $HOME/lib/ 中。

我尝试使用这个新库作为下面 configure 命令的输入,甚至从我的 LD_LIBRARY_PATH 中删除了 /usr/local/lib,但是当我使用 ldd 检查时,它似乎仍然显示可执行文件是使用 /usr/local/lib 中旧版本的库构建的。

./configure LDFLAGS="-l:$HOME/lib/libstarpu.so.0"

如何使我的构建系统在不同于系统默认的 /usr/local/lib 的文件夹中使用该共享库的较新版本?

我是否需要修改与构建相关的 makefile 和配置文件中的任何内容?

答案1

尝试:

LD_LIBRARY_PATH="$HOME/lib" ./configure

无论如何,请检查这里解释的环境变量:

man ld.so

相关内容