目录1.打印环境变量1.1.查看所有环境变量1.2.查看单个环境变量2.查看程序加载了哪些库2.1.查「还没运行」的程序依赖哪些库最常用2.2.查「正在运行」的程序实际加载了哪些库3.“库找不到” 最管用、最直接的 5 种方法3.1.临时生效测试用重启终端失效3.2.当前用户永久生效3.3.系统全局生效所有用户都能用3.4.最标准配置系统库缓存推荐3.5.在编译程序时嵌入 RPATH或 RUNPATH1.打印环境变量1.1.查看所有环境变量env 或 printenv1.2.查看单个环境变量echo $变量名例如echo $PATH echo $LD_LIBRARY_PATH # 对你查Qt库最有用2.查看程序加载了哪些库2.1.查「还没运行」的程序依赖哪些库最常用ldd 你的程序例如ldd ./myapp2.2.查「正在运行」的程序实际加载了哪些库先找到进程 PIDps aux | grep 你的程序名然后用下面任意一条cat /proc/你的PID/maps | grep .so | sort -upmap -p 你的PID | grep .solsof -p 你的PID | grep .so例如只看 Qt 相关ldd ./your_app | grep Qt3.“库找不到” 最管用、最直接的 5 种方法3.1.临时生效测试用重启终端失效直接指定 Qt 库路径运行程序export LD_LIBRARY_PATH/你的Qt库路径/lib:$LD_LIBRARY_PATH ./你的程序比如你装的 Qt5export LD_LIBRARY_PATH/opt/Qt5.15.2/lib:$LD_LIBRARY_PATH ./myapp3.2.当前用户永久生效编辑用户环境变量vim ~/.bashrc 或 nano ~/.bashrc在最后加一行export LD_LIBRARY_PATH/你的Qt库路径/lib:$LD_LIBRARY_PATH生效source ~/.bashrc3.3.系统全局生效所有用户都能用sudo vim /etc/profile末尾添加export LD_LIBRARY_PATH/你的Qt库路径/lib:$LD_LIBRARY_PATH生效source /etc/profile3.4.最标准配置系统库缓存推荐新建 Qt 库配置文件sudo vim /etc/ld.so.conf.d/qt.conf写入 Qt 库路径/你的Qt库路径/lib更新系统库缓存sudo ldconfig3.5.在编译程序时嵌入 RPATH或 RUNPATH如果你是自己编译程序可以在链接阶段通过-Wl,-rpath,选项将库的绝对路径或相对路径硬编码到可执行文件中gcc -o myprog myprog.c -L/path/to/lib -lxxx -Wl,-rpath,/path/to/lib之后运行时可执行文件会优先从该路径查找库不受环境变量影响。持续更新中。。。