You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Qt程序在Ubuntu20.04运行失败:共享库加载报错__vdso_time

解决Debian 11打包Qt应用在Ubuntu 20.04运行时的__vdso_time错误
  • 先确认符号差异:执行readelf -s ./your-qt-app | grep __vdso_time,查看该符号是否在二进制中被引用。Debian 11的glibc虽版本同为2.31,但补丁集和Ubuntu 20.04存在差异,导致vdso相关符号的处理逻辑不同。

  • 调整编译链接选项:重新编译时添加-Wl,--disable-new-dtags链接参数,避免动态链接路径的优先级问题;同时指定-march=x86-64 -mtune=generic,生成更通用的二进制文件,减少发行版特定特性依赖。

  • 完整收集依赖库:不要只依赖ldd的表面检查,手动收集所有依赖的共享库(包括glibc的子模块),将应用和所有依赖库放在同一目录下,运行前设置LD_LIBRARY_PATH=$(pwd),确保加载本地的依赖库而非系统库。

  • 临时调试方案:运行应用前设置环境变量LD_NO_VDSO=1,强制禁用vdso机制,验证是否是vdso导致的问题;或者尝试LD_PRELOAD=/lib/x86_64-linux-gnu/libc.so.6 ./your-qt-app,强制加载系统的libc库。

  • 改用Ubuntu环境编译:直接在Ubuntu 20.04虚拟机或Docker容器中编译Qt应用,从根源避免发行版之间的glibc行为差异。

内容的提问来源于stack exchange,提问作者sixsixqaq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:25:18