我是 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/