gpt4 book ai didi

linux - 使用protocol buffer编译器从proto文件生成java文件 - Google API

转载 作者:太空宇宙 更新时间:2023-11-04 03:37:02 25 4
gpt4 key购买 nike

解压protobuf后,我在C:\Sooraj\Playdrone\android-checkin-master\src\main\protobuf\checkin.proto中有proto文件,java相关的源代码位于C:\Sooraj\Playdrone\protobuf-2.6.1\java\src

当我尝试执行时:

protoc -I=C:/Sooraj/Playdrone/android-checkin-master /android-checkin-master/src/main/java/com/android/checkin --java_out=C:/Sooraj/P laydrone/dest C:/Sooraj/Playdrone/android-checkin-master/android-checkin-master /src/main/protobuf/checkin.proto"

我收到以下错误:

C:/Sooraj/Playdrone/android-checkin-master/android-checkin-master/src/main/proto buf/checkin.proto: File does not reside within any path specified using --proto_ path (or -I). You must specify a --proto_path which encompasses this file. Not e that the proto_path must be an exact prefix of the .proto file names -- protoc is too dumb to figure out when two paths (e.g. absolute and relative) are equiv alent (it's harder than you think).

所以请帮忙。我应该如何针对我的项目执行 protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto 命令。我有 proto 文件,在 Google 开发者网站 $SRC_DIR 中,意思是“应用程序源代码所在的位置”

我想我所做的一切都是正确的。谁能告诉我如何执行protoc从proto文件生成java文件吗?

最佳答案

您的-I标志是这样的:

-I=C:/Sooraj/Playdrone/android-checkin-master/android-checkin-master/src/main/java/com/android/checkin

-I 的目的是指定 .proto 文件的位置(以便解析文件中出现的 import 语句)。该标志并非用于指定 Java 文件所在的位置;这就是 --java_out 的用途。

但是你的.proto文件是这样的:

C:/Sooraj/Playdrone/android-checkin-master/android-checkin-master/src/main/protobuf/checkin.proto

它不在您使用 -I 指定的目录中。这就是错误试图告诉您的内容。

您可能希望将 -I 标志更改为:

-I=C:/Sooraj/Playdrone/android-checkin-master/android-checkin-master/src/main/protobuf

关于linux - 使用protocol buffer编译器从proto文件生成java文件 - Google API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31214415/

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