【已解决】Ubuntu20.04安装fmt编译报错:error: no matching function for call to ‘fmt::v11::formatter的解决方法


一、安装fmt

1、在终端执行以下指令,从github克隆fmt到本地

git clone  https://github.com/fmtlib/fmt.git

2、依次执行以下指令编译安装fmt

cd fmt
mkdir build
cd build
cmake ..
make
sudo make install

在这里插入图片描述


二、相关报错及解决方法

我在执行上述过程中的make指令时产生了以下报错:

error: no matching function for call to ‘fmt::v11::formatter<fmt::v11::detail::std_string_view, char, void>::format(fmt::v11::detail::std_string_view&, fmt::v11::context&) const’
3857 | return formatter<Base, Char>::format(value, ctx);

在这里插入图片描述

   从编译日志来看,fmt 库的编译过程中出现了关于模板推导和类型转换的错误,特别是涉及 std_string_viewbasic_string_view 的问题。这可能是由于 fmt 库版本和我的编译器或依赖项不兼容,或者是某些模板推导的问题。

解决方法:更新或选择合适的 fmt 版本

   当前我编译的 fmt 库版本是 11.0.2,可能在该版本中存在一些模板相关的问题。可以尝试回退到稳定的 fmt 版本来解决该问题,例如9.1.0版本,首先,我们回到fmt文件夹下,在空白处右键,选择 在终端打开 项,然后在打开的终端下执行以下指令

git checkout 9.1.0

在这里插入图片描述

   然后重新在终端执行以下指令:

cd build
cmake ..
make

   然后就可以发现报错成功解决了

在这里插入图片描述

   然后接着按照第一部分中介绍的流程,执行完下面这行语句,就可以完成fmt的安装了

sudo make install

在这里插入图片描述
在这里插入图片描述

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

慕羽★

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值