Ubuntu 如何设置LD_LIBRARY_PATH以先检查某些文件夹,然后再检查其他文件夹

Ubuntu 如何设置LD_LIBRARY_PATH以先检查某些文件夹,然后再检查其他文件夹,ubuntu,makefile,Ubuntu,Makefile,对于我的应用程序,我使用了复制到/opt/lib文件夹的库的特殊版本。 当我运行我的应用程序时,如果从终端运行,我会: 首先导出LD_LIBRARY_PATH=/opt/lib, 然后 我的应用程序运行良好。 否则,它将使用/usr/lib中的错误库 如何将/opt/lib添加到系统中,然后它将在/usr/lib之前检查我的路径? 谢谢 LJ搜索$PATH的方式是,在$PATH开头列出的目录优先于后面列出的目录。因此,请确保顺序正确。将/opt/lib添加到/etc/ld.So.conf文件或/

对于我的应用程序,我使用了复制到/opt/lib文件夹的库的特殊版本。 当我运行我的应用程序时,如果从终端运行,我会:

首先导出LD_LIBRARY_PATH=/opt/lib, 然后

我的应用程序运行良好。 否则,它将使用/usr/lib中的错误库

如何将/opt/lib添加到系统中,然后它将在/usr/lib之前检查我的路径? 谢谢


LJ

搜索$PATH的方式是,在$PATH开头列出的目录优先于后面列出的目录。因此,请确保顺序正确。

将/opt/lib添加到/etc/ld.So.conf文件或/etc/ld.So.conf.d/目录中的文件,然后以root用户身份运行ldconfig将配置系统链接器,使其在搜索中包含该路径。我相信其中的任何内容都会出现在/lib和/usr/lib的默认路径之前,至少根据我正在查看的手册页。除此之外,在/etc/ld.so.conf.d文件中指定的位置之间排序是另一个问题,但可能只是文件读取顺序相关。

感谢您的所有回复。 我刚刚发现如何应对我的情况:

在主目录中的.bashrc文件中添加两行:

  LD_LIBRARY_PATH=/opt/lib
  export LD_LIBRARY_PATH
然后重新启动一个新终端,运行ldd my app,库链接到/opt/lib

希望这是有用的。 谢谢
谢谢你的回复。我试过这个,但没用。在我将文件添加到/etc/ld.so.conf.d/并运行ldconfig之后,我仍然在/usr/lib中得到了错误的库。我还试图修改/etc/ld.so.conf文件,将/opt/lib添加到其中,但也不起作用。到目前为止,对我来说唯一有效的方法是从命令行导出LD_LIBRARY_PATH=/opt/lib。有什么想法吗?谢谢你,我不工作。如果您要求ldconfig向您显示缓存,您是否在缓存中的/opt/lib下看到您的库?ldd不会告诉您您的应用程序链接到了什么。事情不是这样的。它告诉您运行时链接器此时将使用什么来链接库/二进制文件。