gpt4 book ai didi

makefile - 尝试制作 Mosh 源代码时 Protocol Buffer 版本错误

转载 作者:行者123 更新时间:2023-12-04 15:23:41 24 4
gpt4 key购买 nike

我一直在尝试在以下系统上安装 Mosh(移动 shell ):

[ptedder@ukch-dev-lndt03 mosh-1.2.4]$ cat /etc/*-release
CentOS release 5.3 (Final)

它配置没问题,但是当我尝试制作 Mosh 1.2.4(或 1.2.0)时,出现以下错误:
make  all-recursive
make[1]: Entering directory `/home/ptedder/bin/mosh-1.2.4'
Making all in src
make[2]: Entering directory `/home/ptedder/bin/mosh-1.2.4/src'
Making all in protobufs
make[3]: Entering directory `/home/ptedder/bin/mosh-1.2.4/src/protobufs'
make all-am
make[4]: Entering directory `/home/ptedder/bin/mosh-1.2.4/src/protobufs'
CXX userinput.pb.o
In file included from userinput.pb.cc:5:
userinput.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is
userinput.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update
userinput.pb.h:14:2: error: #error your headers.
make[4]: *** [userinput.pb.o] Error 1
make[4]: Leaving directory `/home/ptedder/bin/mosh-1.2.4/src/protobufs'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/home/ptedder/bin/mosh-1.2.4/src/protobufs'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/ptedder/bin/mosh-1.2.4/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/ptedder/bin/mosh-1.2.4'
make: *** [all] Error 2

这是使用 Protocol Buffer 版本 2.4.1(建议它可能在这里硬编码到 mosh #import <string> in ios? Protobuf c++ in ios )但我也尝试使用 Protocol Buffer 版本 2.3.0 和 2.5.0,它们都给出以下错误:
"This file was generated by a newer version of protoc which is
userinput.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update
userinput.pb.h:14:2: error: #error your headers."

有任何想法吗?

最佳答案

在问这个问题两年后,我仍然找不到一个好的解决方案。我遇到了同样的问题,并最终在一些侦探工作后修复了它。问题是这样的:我从 git 仓库中获得了最新版本的 protobuf,https://github.com/google/protobuf .当我尝试构建我的项目时,它抛出了 qmp 的答案中显示的错误,

#if GOOGLE_PROTOBUF_VERSION < 2004000                                           
#error This file was generated by a newer version of protoc which is...

我正在构建其他人编写的代码,在他们的 .proto 文件中,他们没有指定版本。默认为 syntax = "proto2";我加了 syntax = "proto3";package 之前的 .proto 文件声明并删除了 optional 的所有实例和 required关键字,因为它们不是版本 3 语法的一部分。然后从命令行,我重新生成了 protobuf 输出。
prompt@ubuntu$ protoc --cpp_out=. project.proto

这将 protoc 生成的所有文件更新到版本 3,从而解决了问题。

关于makefile - 尝试制作 Mosh 源代码时 Protocol Buffer 版本错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17525145/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com