因为项目中的protobuf是2.5.0版本,但是旧版本的protobuf 不支持M1,此时需要修改源码重新编译
操作步骤:
-
从git上面下载对应版本的protobuf,地址:Release Protocol Buffers v2.5.0 · protocolbuffers/protobuf · GitHub
-
滑动到最下面选择
-
解压进入src/google/protobuf/stubs/这个目录下,编辑platform_macros.h
-
找到以下代码
java#else #error Host architecture was not detected as supported by protobuf
-
在上面增加
java#elif defined(__arm64__) #define GOOGLE_PROTOBUF_ARCH_ARM 1 #define GOOGLE_PROTOBUF_ARCH_64_BIT 1
最终结果如下图
-
在源码根目录下执行(****/protobuf-2.5.0/) cd 到protobuf-2.5.0目录
java//默认安装到/usr/local ./configure make sudo make install protoc --version //查看是否安装成功
卸载
java$ which protoc /usr/local/bin/protoc $ sudo rm /usr/local/bin/protoc
上面参考
下面是第二种安装方案,我测试没有成功
java
./configure
make
make check
make install
-
然后开始安装,中间会需要你同意,并按回车键,知道需要你输入命令
-
输入"sudo xcodebuild -license"命令,然后输入电脑密码
-
然后继续按回车键
-
到下图这一步的时候你需要输入"agree",表示同意软件许可条款
-
验证
执行下面检查protoc命令是否存在javawhich protoc
注意事项
下载红框里的tag版本后重新编译,不是下载source code哦
-
参考链接ProtoBuf2.5.0 Mac M1 cpu make failed · Issue #8836 · protocolbuffers/protobuf · GitHub