当前位置: 首页 > news >正文

Ubuntu下软件运行常见异常退出问题汇总分析

软件在Ubuntu下运行时,可能会遇到各种异常退出情况,常见可分为以下几点:

目录

一、系统资源耗尽导致退出

二、权限导致无法运行

三、找不到依赖的动态库

四、编译可执行文件时,动态库所引用的头文件与动态库不匹配


一、系统资源耗尽导致退出

可以使用htop查看系统资源使用情况:

二、权限导致无法运行

出现这种问题的原因可能是由于外部导入或者拷贝到该路径的可执行程序的权限发生了变化:

三、找不到依赖的动态库

报错常见如下:

./XXX: error while loading shared libraries:XXX: cannot open shared object file: No such file or directory

1、依赖库缺失的情况:

ldd ./XXX // ldd,查看运行程序依赖库

这里会发现不少库未找到具体位置,找到具体库的位置,并导入进去,重新编译可执行文件;

2、依赖库存在,但是还是报找不到

2.1、临时将库查找的库,添加到环境变量中:

查看环境变量:printenv

printenv

LD_LIBRARY_PATH,查看当前动态库路径是否包含我此可执行文件依赖的动态库路径,没有的话临时添加以下:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/XXXX/XXXX //这里接动态库路径

2.2、添加动态链接库管理文件,并加载配置

可以在/etc/ld.so.conf.d/目录下创建.conf文件来添加库路径,例如:

执行动态链接库的管理命令ldconfig,从而使得配置生效:

sudo ldconfig

四、编译可执行文件时,动态库所引用的头文件与动态库不匹配

前面两类排除,均得不到解决,这里需要gdb,调试一下可执行文件:查看崩溃点:

这里要查看编译时,链接的头文件,跟动态库是否匹配,若不匹配也会导致这个问题,找到匹配的头文件,跟动态库重新编译生成可执行文件。

相关文章:

  • Qt本地化 - installTranslator不生效
  • HarmonyOs @hadss/hmrouter路由接入
  • 外观模式:简化复杂系统接口的设计模式
  • RS232转ProfibusDP网关:连接未来传感器的关键
  • 4.1 融合架构设计:LLM与Agent的协同工作模型
  • 2025上海车展:光峰科技全球首发“灵境”智能车载光学系统
  • 倚光科技:柱面透镜加工工艺详解,解锁光学新境界
  • 构建企业官方网站有哪些必备因素?
  • vue3--手写手机屏组件
  • java Springboot使用扣子Coze实现实时音频对话智能客服
  • dockercompose文件仓库
  • Ubuntu22学习记录
  • 部署本地deepseek并在调用的详细步骤以及解决一些可能出现的问题(Windows,Linux, WSL)
  • 【数据可视化-30】Netflix电影和电视节目数据集可视化分析
  • 【记录手贱bug日常】IDEA 配置vmoptions后打不开,重新安装,删注册表均无用
  • ESP32_IDF_VScode安装多版本共存
  • 解决VSCode每次SSH连接服务器时,都需要下载vscode-server
  • HTML5 详细学习笔记
  • 【AI】基于OllamaSharp与.NET Core API的高效LLM查询实现
  • Wan2.1和HunyuanVideo文生视频模型算法解析与功能体验丨前沿多模态模型开发与应用实战第六期
  • 法治日报:强制统一店铺广告牌匾事件何以频发?
  • 一季度沪苏浙皖GDP增速均快于去年全年,新兴动能持续壮大
  • 医改经验如何因地制宜再创新?国家卫健委“以例说法”
  • 航空货运三巨头去年净利合计超88亿元,密切关注关税政策变化和市场反应
  • 北京顺义潮白河大桥主跨坍塌原因公布,已成立事故调查组
  • 从“龙队”到“龙副”,国乒这批退役球员为何不爱当教练了