生成gRPC PHP客户端时执行make protoc grpc_php_plugin报错
解决gRPC PHP插件编译时"make: *** No rule to make target 'protoc'"的问题
方案1:指定系统已安装的protoc路径重新配置cmake
既然已经全局安装了protoc,可手动指定路径让cmake识别,重新执行配置:
# 切换到cmake/build目录 cmake ../.. -DProtobuf_PROTOC_EXECUTABLE=/usr/bin/protoc # 替换成你的protoc实际安装路径
配置完成后直接编译PHP插件即可,无需再编译protoc:
make grpc_php_plugin
方案2:启用gRPC源码内的protoc构建选项
如果想从gRPC源码编译protoc,需要在cmake配置时开启对应选项:
# 在cmake/build目录下清空原有构建文件 rm -rf ./* cmake ../.. -DgRPC_BUILD_PROTOBUF=ON -DgRPC_PROTOBUF_PROVIDER=package make grpc_php_plugin
该配置会让gRPC源码自行构建protoc,同步完成PHP插件编译。
方案3:跳过源码编译,直接用系统protoc生成存根
若已拥有protoc和grpc_php_plugin(预编译或手动编译好的),可直接用以下命令生成Zeebe的PHP存根:
protoc --php_out=./output_dir --grpc_out=./output_dir \ --plugin=protoc-gen-grpc=/path/to/grpc_php_plugin \ path/to/zeebe/*.proto
替换./output_dir为存根输出目录,/path/to/grpc_php_plugin为插件实际路径,path/to/zeebe/*.proto为Zeebe的proto文件路径。
内容的提问来源于stack exchange,提问作者user27272324
相关产品推荐
相关产品推荐

