PATH
这个环境变量,从我大一就出现了,年少无知,“总有一天我会搞明白的”,这都5年过去了,5年!你知道我这5年是怎么过来的吗!!!
有啥用呢? 大家直接查就行,我唯一能用到的地方就是 将某些可执行文件的路径添加到PATH
中
举个例子
我在参考了:
1. ONNX-TensorRT安装教程https://zhuanlan.zhihu.com/p/380950900
2. https://github.com/onnx/onnx-tensorrt
在执行了以下代码块儿之后:
cd onnx-tensorrt
mkdir build && cd build
cmake .. -DTENSORRT_ROOT=<path_to_trt> && make -j
// Ensure that you update your LD_LIBRARY_PATH to pick up the location of the newly built library:
export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH
在 build
路径下会有一个可执行文件onnx2trt
我在执行的时候,只能执行./onnx2trt
,而不能在其他路径直接执行onnx2trt
所以PATH
就起作用了:
export PATH=$(pwd):$PATH
这样可以将onnx2trt的路径添加到PATH中,在任何路径都可执行onnx2trt,但是这样添加只是临时的,若想一直添加到PATH中,可以这样:
echo "export PATH=$(pwd):$PATH" >> ~/.bashrc
source ~/.bashrc # 刷新一下环境变量
注意 echo 的字符串
如果字符串中有变量,单引号会忽略,而双引号会把变量解析以后带入字符串
另外还有个例子,CUDA安装完之后,我们会在 ~/.bashrc
尾处添加两行代码:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64$LD_LIBRARY_PATH
之后执行nvcc -V
来看CUDA是否安装成功,而上边的第一行就是保证 nvcc
所在的路径可以直接搜索到,能直接执行 nvcc
下边那行引出了 LD_LIBRARY_PATH
而 LD_LIBRARY_PATH
的用法,如果不是开发者,而只是普通用户,一般用不上
LD_LIBRARY_PATH
是 Linux/UNIX 系统中使用的环境变量。 它用于告诉动态链接加载器在哪里寻找特定应用程序的共享库.
而上边编译完onnx2trt
之后,有这样一行:
export LD_LIBRARY_PATH=$PWD:$LD_LIBRARY_PATH
就是将当前路径添加到 LD_LIBRARY_PATH
,之后执行python setup.py install
便可以找到安装路径
同样的,在编译 mmdeploy 中
export LD_LIBRARY_PATH=$ONNXRUNTIME_DIR/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$TENSORRT_DIR/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$CUDNN_DIR/lib64:$LD_LIBRARY_PATH
将 onnxruntime tensorrt cudnn 的路径都添加到了 LD_LIBRARY_PATH
为了一会儿编译 SDK 可以找到路径
OK,就这样吧