Linux 22.04运行Electron应用时GLIBCXX_3.4.29缺失问题求助
解决Ubuntu 22.04中Electron应用依赖GLIBCXX_3.4.29缺失的问题
问题分析
你的系统自带的/usr/lib/x86_64-linux-gnu/libstdc++.so.6已经包含GLIBCXX_3.4.29及更高版本,但Electron启动时优先加载了snap core20环境下的旧版库(仅到GLIBCXX_3.4.28),导致libproxy.so.1无法找到所需的版本依赖,进而触发报错。
解决方案
方法1:临时指定系统库路径启动
在终端中运行以下命令,强制Electron加载系统的新版libstdc++:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 npm start
或者直接调用Electron二进制文件:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./node_modules/electron/dist/electron .
方法2:修改启动脚本永久生效
编辑项目根目录的package.json,修改start脚本,让每次启动都自动加载系统库:
"scripts": { "start": "LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 electron ." }
之后只需正常运行npm start即可。
方法3:更新/重建snap core20环境
尝试更新core20到最新版本,看是否已更新libstdc++:
sudo snap refresh core20
若更新无效,可重新安装core20:
sudo snap remove core20 sudo snap install core20
方法4:清理gio模块缓存
错误提示无法加载libgiolibproxy.so,清理相关缓存后重试:
rm -rf /home/kartik/snap/code/common/.cache/gio-modules gio-querymodules /usr/lib/x86_64-linux-gnu/gio/modules/
备选方案:重新安装Electron依赖
如果以上方法都无效,尝试清理并重新安装项目依赖:
rm -rf node_modules package-lock.json npm install
内容的提问来源于stack exchange,提问作者Raman
相关产品推荐
相关产品推荐

