VS2022解决Protobuf compiler version 23.4 doesn‘t match library version 4.23.4

20 篇文章 0 订阅
19 篇文章 1 订阅

在使用Visual Studio 2022+MinGW+CMake作为开发环境时,如果项目中使用了Protobuf,则在CMake运行时,可能会出现Protobuf compiler version 23.4 doesn't match library version 4.23.4的问题:

1> [CMake] CMake Warning at C:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.26/Modules/FindProtobuf.cmake:524 (message):
1> [CMake]   Protobuf compiler version 23.4 doesn't match library version 4.23.4

可以看到目前VS2022 17.7.1下,CMake的版本还是3.26,而最新版本3.27已经出来了,且MinGW已经是3.27版本了。VS中CMake的FindProtobuf.cmake模块对Protobuf版本号的查找方式仅适用于Protobuf 22之前的版本,Protobuf 22之后protoc不再输出主版本号了。

在这里插入图片描述

protoc --version
libprotoc 23.4

没有主版本号4,实际版本号为4.23.4。

只需要把msys64\mingw64\share\cmake\Modules\FindProtobuf.cmake复制到C:/Program Files/Microsoft Visual Studio/2022/Enterprise/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/share/cmake-3.26/Modules/目录下,覆盖FindProtobuf.cmake即可。

另外,在MinGW下使用新版本的Protobuf,还需要链接一系列absl库,最基础的是需要链接absl_log_internal_messageabsl_log_internal_check_op

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值