1 import
今天写项目发现, 需要从在一个proto文件中导入另一个文件夹中的proto文件的一个结构, 于是在目录下写了一个hellohi文件夹, 来测试导包的路径应该怎么写? 我相信大家疑惑的一定是这个问题
看图, 为什么不是从app文件夹开始, 或者ws_chat文件夹开始呢?
这里的测试内容就是 computer.proto从component.proto导入其中的两个结构体, 上面这里是我已经测试成功了, 发现必须从hellohi这个文件夹开始, 为什么呢?
先看看component.proto是怎么写的
syntax = "proto3";
package msg;
message CPU {
string Name = 1;
int64 Frequency = 2;
}
message Memory {
string Name = 1;
int64 Cap = 2;
}
原因是这样,
import "hellohi/app/msg/rpc/component.proto";
相当于
import "{cwd}就是本项目的工作路径, 即~/code/ws_chat/
所以, proto导包要从工作路径的下一级路径开始写
2 protoc
导了包的proto文件
protoc就不能在${cwd}/hellohi/app/msg/rpc/下执行了
而要在${cwd}下执行