发布于2026-07-13 阅读(0)
扫一扫,手机访问
快速定位与通用排查步骤

碰到程序跑不起来,别急着翻文档,先按下面的思路顺一遍。
your_app 2>&1 | tee log.txt,标准错误也会被捕获。再用 echo $? 看一眼退出码,很多时候退出码已经给出了方向。chmod +x your_app 走一遍。which 或 whereis 确认程序路径。动态库的问题,用 ldd your_app 看一眼,缺失或版本不对的库会直接列出来。gdb ./your_app,进去后 run,崩溃后用 bt 看调用栈,问题基本就锁定在那一块。-I(头文件路径)、-L(库路径)和 -l(库名)是否写对,同时确认依赖的库确实装在系统里了。上面这几步走下来,大部分编译、链接、依赖和运行期崩溃的场景都能快速圈出问题范围。
libstdc++.so.6: version `CXXABI_1.3.8' not found 或 GLIBCXX_3.4.20' not found。原因很简单:程序依赖的 libstdc++ 符号版本,比系统里装的高。处理方法:
sudo apt-get update && sudo apt-get install libstdc++6 g++export LD_LIBRARY_PATH=/path/to/newer/lib 指向包含所需版本库的目录,但生产环境不建议这样替换系统库。Permission denied,或者提示 No such file or directory 但文件明明在那里。处理方法:chmod +x 补上执行权限;确认工作目录与程序内部的相对路径是否对得上;实在不行直接用绝对路径跑。sudo dd if=/dev/zero of=/swapfile bs=1M count=2048 && sudo mkswap /swapfile && sudo swapon /swapfile && sudo chmod 600 /swapfile,然后重新编译。或者干脆加大物理内存。gcc --version 或 g++ -v 的输出,再对照 IDE 中的包含路径设置,确保两者一致。上面这些对策,基本覆盖了 Debian 上最常见的 C++ 运行与构建问题。
libstdc++.so.6: version `GLIBCXX_3.4.20' not found。strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX,如果看不到所需要的版本,说明系统库确实偏旧。sudo apt-get update && sudo apt-get install libstdc++6。export LD_LIBRARY_PATH=/opt/your_app/lib:$LD_LIBRARY_PATH,然后 ./your_app 跑一下。这个流程可以帮助快速判断并修复大多数 libstdc++ 版本不匹配的问题。
从实际项目经验来看,环境一致性往往是最大的坑。做好下面几件事,能省下不少排查时间。
下一篇:SecureCRT支持文件传输吗
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8