【问题标题】:Correct way to export multiple LD_LIBRARY_PATHs导出多个 LD_LIBRARY_PATH 的正确方法
【发布时间】:2019-11-03 10:49:28
【问题描述】:

我是使用 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

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

提前谢谢你。

【问题讨论】:

标签: linux shell ubuntu-18.04


【解决方案1】:

您的方法应该可行,即您正在向 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,您会看到它改变了路径的顺序,如果您在多个位置拥有相同的库,这可能很重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-17
    • 2016-10-05
    • 2021-04-30
    • 1970-01-01
    • 2021-09-15
    • 2014-11-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多