惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
G
Google Developers Blog
人人都是产品经理
人人都是产品经理
U
Unit 42
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
WordPress大学
WordPress大学
B
Blog RSS Feed
The Cloudflare Blog
D
Docker
A
About on SuperTechFans
IT之家
IT之家
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Y
Y Combinator Blog
月光博客
月光博客
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
MongoDB | Blog
MongoDB | Blog
Google DeepMind News
Google DeepMind News
The GitHub Blog
The GitHub Blog
博客园_首页
Stack Overflow Blog
Stack Overflow Blog

牛牛技术客栈

设计模式-备忘录模式 - OXOXTECH 牛牛技术客栈 设计模式-中介者模式 - OXOXTECH 牛牛技术客栈 Linux【Ubuntu】修改ssh默认端口 - OXOXTECH 牛牛技术客栈 设计模式-迭代器模式 - OXOXTECH 牛牛技术客栈 scheduled定时任务的三种基本实现方式 - OXOXTECH 牛牛技术客栈 Apriori - 基于关联规则的推荐算法(三) - OXOXTECH 牛牛技术客栈 Apriori - 基于关联规则的推荐算法(二) - OXOXTECH 牛牛技术客栈 Apriori - 基于关联规则的推荐算法(一) - OXOXTECH 牛牛技术客栈 基于JavaFX的桌面端网络调试工具 - OXOXTECH 牛牛技术客栈 Golang Channel的原理介绍 - OXOXTECH 牛牛技术客栈 Go语言Map的原理分析 - OXOXTECH 牛牛技术客栈 Go语言错误处理(panic)的最佳实践 - OXOXTECH 牛牛技术客栈 设计模式-解释器模式 - OXOXTECH 牛牛技术客栈 Redis报错Redis is configured to save RDB snapshots, but it's currently unable to persist to disk. exe4j 打包加密的jar - OXOXTECH 牛牛技术客栈 Go生成图形验证码示例 - OXOXTECH 牛牛技术客栈 澳门一天游:一日尽享东方与西方的交融之美 - OXOXTECH 牛牛技术客栈 设计模式-命令模式 - OXOXTECH 牛牛技术客栈 别再自己瞎写工具类了,SpringBoot内置工具类应有尽有 - OXOXTECH 牛牛技术客栈 中山一日游 - OXOXTECH 牛牛技术客栈 设计模式-责任链模式 - OXOXTECH 牛牛技术客栈 起舞吧,齐舞吧 - OXOXTECH 牛牛技术客栈 设计模式-组合模式 - OXOXTECH 牛牛技术客栈 Go语言Web开发|GoFrame框架入门笔记 - OXOXTECH 牛牛技术客栈 Java打包exe教程 - OXOXTECH 牛牛技术客栈 设计模式-代理模式 - OXOXTECH 牛牛技术客栈 MySQL存储过程的优缺点有哪些? - OXOXTECH 牛牛技术客栈 前端渲染优化有哪些? - OXOXTECH 牛牛技术客栈 HTTP状态码及其含义 - OXOXTECH 牛牛技术客栈 从浏览器地址栏输入url到显示页面的步骤 - OXOXTECH 牛牛技术客栈
go-webpbin库在Linux报错failed to encode image to WebP: ex...
Jensen · 2025-02-17 · via 牛牛技术客栈

Jensen Go Linux, Golang, GoFrame

问题:

在上传图片的时候报错:failed to encode image to WebP: exit status 1. .bin/webp/cwebp: /lib64/libm.so.6: version `GLIBC_2.29' not found (required by .bin/webp/cwebp)

原因

报错信息显示是 cwebp 工具需要的共享库(libm.so.6)版本不满足要求,这通常是因为你的 CentOS 7 系统默认的 glibc 版本较低,而 cwebp 工具依赖较新的 glibc 版本(至少 2.29)。而我的项目是goframe项目,使用了 go-webpbin 库,虽然在打包的时候使用了交叉编译,但 go-webpbin 运行时会调用本地的 cwebp,仍然受限于运行环境的 glibc 版本。

解决方法

1. 升级你的 glibc 检查当前 glibc 版本:

ldd --version

如果显示 glibc 2.17 或更低,需要手动升级。

注意⚠️:在升级glibc前,请务必备份系统数据和文件,因为可能会导致系统崩溃,谨慎!!!

2. 升级 glibc 至 2.29 或更高版本:

这里升级到 v2.31,按顺序执行以下命令:

wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz

tar -xvzf glibc-2.31.tar.gz 
                          
cd glibc-2.31    
               
mkdir build

cd build

unset LD_LIBRARY_PATH && ../configure --prefix=/usr 
--disable-profile --enable-add-ons --with-headers=/usr/include 
--with-binutils=/usr/bin --disable-sanity-checks --disable-werror
               
make -j6

sudo make install

make localedata/install-locales

如果执行到 unset LD_LIBRARY_PATH && ../configure ...... 时候报错:

configure: error:

*** These critical programs are missing or too old: compiler xxxxx

*** Check the INSTALL file for required versions.

glibc-2.29 根目录执行命令:cat INSTALL | grep -E  "newer|later" 查看所需工具链版本,需要确保工具链满足以下版本要求:(如需升级请自行 Google 百度

工具名称所需版本版本查看命令
make>= 4.0make -v
bison>= 2.7yum info bison
python>= 3.4python --version
gcc>= 5.0gcc -v
binutils>= 2.25yum info binutils
texinfo>= 4.7yum info texinfo
sed>= 3.02sed --version
gdb>= 7.8gdb --versiont
gettext>= 0.10.36yum info gettext

所有工具链升级完后重新构建

unset LD_LIBRARY_PATH && ../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror

构建编译过程:

20250107154519023.webp

3. 验证新版

ldd --version

20250107153252976.webp