码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • PATH 与 LD_LIBRARY_PATH 的用法举例


    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在 build 路径下会有一个可执行文件onnx2trt
    我在执行的时候,只能执行./onnx2trt,而不能在其他路径直接执行onnx2trt

    所以PATH 就起作用了:

    export PATH=$(pwd):$PATH
    
    • 1

    这样可以将onnx2trt的路径添加到PATH中,在任何路径都可执行onnx2trt,但是这样添加只是临时的,若想一直添加到PATH中,可以这样:

    echo "export PATH=$(pwd):$PATH" >> ~/.bashrc
    source ~/.bashrc # 刷新一下环境变量
    
    • 1
    • 2

    注意 echo 的字符串
    如果字符串中有变量,单引号会忽略,而双引号会把变量解析以后带入字符串

    另外还有个例子,CUDA安装完之后,我们会在 ~/.bashrc 尾处添加两行代码:

    export  PATH=/usr/local/cuda/bin:$PATH
    export  LD_LIBRARY_PATH=/usr/local/cuda/lib64$LD_LIBRARY_PATH
    
    • 1
    • 2

    之后执行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
    
    • 1

    就是将当前路径添加到 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
    
    • 1
    • 2
    • 3

    将 onnxruntime tensorrt cudnn 的路径都添加到了 LD_LIBRARY_PATH
    为了一会儿编译 SDK 可以找到路径

    OK,就这样吧

  • 相关阅读:
    java递归获取所有的子级节点
    PFC(Power Factor Correction)功率因数校正电路
    基于springcloud+web实现智慧养老平台系统项目【项目源码+论文说明】计算机毕业设计
    Upcoming Tasks Privacy Policy
    记录解决uniapp使用uview-plus在vue3+vite+ts项目中打包后样式不能显示问题
    node node-sass sass-loader版本兼容问题
    【FAQ】一则关于PYTHON与SHELL处理文本乱码的问题
    【Rust日报】2023-09-22 微软支持使用 Rust 开发 Windows 驱动程序
    聊聊volatile作用,原理
    Java21 + SpringBoot3整合Redis,使用Lettuce连接池,推荐连接池参数配置,封装Redis操作
  • 原文地址:https://blog.csdn.net/HaoZiHuang/article/details/125487468
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号