linux - 导出多个 LD_LIBRARY_PATH 的正确方法

标签 linux shell ubuntu-18.04

我是 linux 新手。根据关于我的项目的指南,我必须多次导出 LD_LIBRARY_PATH,我不确定我是否不覆盖它们。

#Cupti + Tensorflow_CUDAit
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/extras/CUPTI/lib64

#Mujoco
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/robolab/.mujoco/mujoco200/bin
export MUJOCO_PY_MJPRO_PATH=$HOME/.mujoco/mujoco200/
export MUJOCO_PY_MJKEY_PATH=$HOME/.mujoco/mjkey.txt

#Mujoco_py
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so

这是正确的方法还是我要覆盖它们?如果是这样,正确的方法是什么?

提前谢谢你。

最佳答案

您的方法应该可行,即您正在向 LD_LIBRARY_PATH 添加多个路径(而不是覆盖),但是有两个陷阱需要注意。

(1) 喜欢引用 LD_LIBRARY_PATH,如下所示:

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":/home/robolab/.mujoco/mujoco200/bin

... 这样 LD_LIBRARY_PATH 中的嵌入空间就不会造成问题。

(2) 考虑将路径放在一起的顺序,例如,您也可以这样做

export LD_LIBRARY_PATH=/home/robolab/.mujoco/mujoco200/bin:"$LD_LIBRARY_PATH"

如果您对这两种方法进行试验,然后 echo $LD_LIBRARY_PATH,您将看到它改变了路径的顺序,如果您在多个位置拥有相同的库,这可能很重要。

关于linux - 导出多个 LD_LIBRARY_PATH 的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58679423/

相关文章:

java - 在 Linux 中获取用户进程的执行时间

linux - 如何在汇编循环中打印整数

java - 通过 shell 命令安装项目

bash - 在 bash 脚本中使用空格拆分句子

ubuntu - 想在 ubuntu 18.04 中删除 libboost1.65

无法从模块获取内核消息

c - 整个一个核心专用于单个进程

android - 使用 adb shell 重命名文件

sql-server - Docker Ubuntu 18.04 无法安装 msodbcsql17 SQL Server ODBC 驱动程序 17

java - 如何在 Ubuntu 18.04 上安装 Oracle Java 8?