当尝试编译名为UserO的原始文件时ptions.proto它有一个名为A的导入ccount.proto使用下面的命令
protoc --proto_path=/home/project_new1/account --java_out=/home/project_new1/source /home/project_new1/settings/Useroptions.proto
我得到以下错误:
/home/project_new1/settings/UserOptions.proto: File does not reside within any path specified using --proto_path (or -I). You must specify a --proto_path which encompasses this file.
PS:用户选项。proto位于目录/home/project\u new1/settings中导入帐户。proto存在于目录/home/project\u new1/account中
原型描述符文件:
用户选项。原型
package settings;
import "Account.proto";
option java_outer_classname = "UserOptionsVOProto";
账户原型
package account;
option java_outer_classname = "AccountVOProto";
message Object
{
optional string userId = 1;
optional string service = 2;
}
对于我的环境,Windows 10 Pro操作系统和C编程语言,我使用了protoc-3.12.2-win64。拉链,你可以从这里放下它。您应该在protoc-3.12.2-win64路径中打开Windows PowerShell,然后必须执行以下命令之一:
.\protoc.exe -I=C:\Users\UserName\Desktop\SRC --cpp_out=C:\Users\UserName\Desktop\DST C:\Users\UserName\Desktop\SRC\addressbook.proto
或者
.\protoc.exe --proto_path=C:\Users\UserName\Desktop\SRC --cpp_out=C:\Users\UserName\Desktop\DST C:\Users\UserName\Desktop\SRC\addressbook.proto
注:
1-我的源文件夹在:C:\用户\用户名\桌面\SRC
2-我的目标文件夹在:C:\用户\用户名\桌面\DST
3-车型年款。原型文件位于:C:\Users\UserName\Desktop\SRC\addressbook中。原型
对于我们这些想把这一点说清楚的人来说,这里有一个例子,我使用NuGet软件包Google为gRPC安装了protoc beta。Grpc协议。Core和Grpc。工具。我的解决方案包比我的Grpc目录高一级(即位于BruTrader\packages)。我的proto文件位于BruTrader\Grpc\proto。
1. My .proto file:
syntax = "proto3";
import "timestamp.proto";
import "enums.proto";
package BruTrader.Grpc;
message DividendMessage {
double amount = 1;
google.protobuf.Timestamp dateUnix = 2;
}
2. my GenerateProto.bat file:
..\packages\Google.Protobuf.3.0.0-beta2\tools\protoc.exe -I..\Grpc\protos -I..\packages\Google.Protobuf.3.0.0-beta2\tools\google\protobuf --csharp_out=..\Grpc\Generated --grpc_out=..\Grpc\Generated --plugin=protoc-gen-grpc=..\packages\Grpc.Tools.0.13.0\tools\grpc_csharp_plugin.exe %1
3. my BuildProtos.bat
call GenerateProto ..\Grpc\protos\masterinstrument.proto
call GenerateProto .\protos\instrument.proto
etc.
4. BuildProtos.bat is executed as a Pre-build event on my Grpc project like this:
CD $(ProjectDir)
CALL "$(ProjectDir)BuildProtos.bat"
正如错误消息所述,您在命令行上传递的文件需要位于一个proto\u路径中。在您的情况下,您只指定了一个proto\u路径:
/home/project_new1/
但您传递的文件是:
/home/project_new1/settings/UserOptions.proto
请注意,该文件不在帐户
子目录中;它在设置
中。
您有两种选择:
>
protoc --proto_path=/home/project_new1/ --java_out=/home/project_new1 /home/project_new1/settings/UserOptions.proto
在这种情况下,要导入ccount.proto
,您需要编写:
import "account/Account.proto";
问题内容: 我有这种文件结构(目录和箭头文件之后): 主要: 型号目录: 报告目录: 现在,我想导入,但是我尝试做的错误是没有这样的模块。 我尝试了这个: 然后: 看起来这两个文件夹没有看到对方。从其他目录导入文件的方式是什么?我需要在 init .py文件中指定一些其他导入吗? 问题答案: 您可以在运行时添加到系统路径: 到目前为止,这是最简单的方法。
这是我的Android项目 我想将自定义包从目录应用程序导入目录示例。伙计们,怎么做???
我正在使用QT,我无法找到如何将文件从一个目录复制到另一个目录?我怎样才能做到这一点?
问题内容: 我需要从另一个目录打开一个图像,但是当我尝试像这样输入整个路径名时,以下代码不起作用。 我正在尝试打开图像。我正在这样做,所以我可以为该代码制作GUI,但是我真的很困。我尝试了很多事情,但似乎没有任何效果。任何建议将不胜感激。 问题答案: 你可以尝试任何一个
我试图从另一个目录导入一个python类,但它总是显示“未找到模块”。 我试图将一个类从导入到中,使用以下内容: 但是它显示了'modulenotfounderror:没有名为'supervision'的模块,在python 3.9中实现这一点的最佳方法是什么?