【问题标题】:unable to generate proto files in golang无法在 golang 中生成 proto 文件
【发布时间】:2022-10-05 03:39:52
【问题描述】:

我正在尝试生成 proto buf 文件,但我不断收到错误消息

book.proto: warning: directory does not exist.

但是该文件存在。

我已经使用 dockerfile 和普通的 proto 命令进行了尝试

生成文件

PROJ_PATH=${CURDIR}
UID?=${shell id -u}
GID?=${shell id -g}
DEPS_IMAGE?=${memominsk/protobuf-alpine:latest}

.PHONY: proto
proto: ## Generate protobuf code
    mkdir -p pkg/api
# Compile proto files inside the project.
    protoc --proto_path=${PROJ_PATH}/proto/api -I book.proto \
            --go_out=. --go-grpc_out=pkg/api \

.PHONY: proto-docker
proto-docker: ## Generate protobuf code
    docker run --rm -v $(pwd):/mnt memominsk/protobuf-alpine:latest \
    --go_out=pkg/api --go-grpc_out=pkg/api \
    --proto_path=${PROJ_PATH}/proto/api ${PROJ_PATH}/proto/api/book.proto

我不确定我做错了什么。也许多一双眼睛会有所帮助。

提前致谢。

【问题讨论】:

    标签: protocol-buffers


    【解决方案1】:

    这个-I book.proto 不正确。

    -I == --proto_path 这不是你想要的。

    每当您使用protoc 指定原始文件(例如book.proto)时,这些文件必须以--proto_path 值之一(如果已指定)作为前缀。

    由于您指定了--proto_path={PROJECT_PATH}/proto/api,因此它还必须作为{PROJECT_PATH}/proto/api/book.proto 的前缀。

    你挂了

    protoc 
    --proto_path=${PROJ_PATH}/proto/api 
    --go_out=. 
    --go-grpc_out=pkg/api 
    ${PROJ_PATH}/proto/api/book.proto
    

    【讨论】:

      猜你喜欢
      • 2016-12-08
      • 2019-10-10
      • 2018-08-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-05
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      相关资源
      最近更新 更多