You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1Pro Mac执行protoc生成gRPC文件报错:插件状态码1

解决M1 Pro Mac上protoc-gen-grpc-java插件执行失败的问题

问题分析

你遇到的核心问题是下载的gRPC Java插件带有.exe后缀——这是Windows平台的可执行文件标识,M1 Mac(arm64架构)的系统无法正确识别带有该后缀的文件为可执行程序,哪怕你已经设置了完整权限也无济于事。

解决方案

1. 移除插件文件的.exe后缀

首先重命名你的插件文件,去掉多余的.exe后缀:

mv /Users/MYUSERNAME/Downloads/protoc-gen-grpc-java-1.48.1-osx-aarch_64.exe /Users/MYUSERNAME/Downloads/protoc-gen-grpc-java-1.48.1-osx-aarch_64

2. 修改protoc命令的plugin参数

更新你的生成命令,将--plugin指向重命名后的文件:

protoc --proto_path=$PROTO_PATH --plugin=protoc-gen-grpc=/Users/MYUSERNAME/Downloads/protoc-gen-grpc-java-1.48.1-osx-aarch_64 --grpc_out=$OUT/grpc $PROTO_FILES

3. (可选)将插件加入系统PATH简化命令

为了避免每次都指定完整路径,你可以将插件复制到系统PATH包含的目录(比如/usr/local/bin),并确保权限正确:

# 复制并重命名为protoc-gen-grpc(protoc默认会查找这个命名的插件)
cp /Users/MYUSERNAME/Downloads/protoc-gen-grpc-java-1.48.1-osx-aarch_64 /usr/local/bin/protoc-gen-grpc
# 确保执行权限
chmod +x /usr/local/bin/protoc-gen-grpc

之后你可以直接使用简化命令:

protoc --proto_path=$PROTO_PATH --grpc_out=$OUT/grpc $PROTO_FILES

4. 验证插件架构匹配(可选)

如果问题仍存在,用file命令验证插件是否适配M1的arm64架构:

file /Users/MYUSERNAME/Downloads/protoc-gen-grpc-java-1.48.1-osx-aarch_64

正常输出应该包含Mach-O 64-bit executable arm64,如果显示x86_64,说明你下载了错误的架构版本,需要重新下载对应osx-aarch_64的插件。

内容的提问来源于stack exchange,提问作者juuubbb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 21:15:47