Specifying import paths
We saw that we can import files in Protobuf, but up until now, we only saw the syntax. If you do not remember, this looks like the following:
import "proto/a.proto";
Now, because the string after the import
keyword is mostly a path, we might find ourselves with protoc
not being aware of where this file is. This might happen in the following situations:
- We want to keep the import path “clean,” meaning that we want all files in the project to be imported from a certain folder. For example, the
proto
directory is commonly used, and we could have all.proto
files under this folder. - If we want to build the
.proto
files in a directory that cannot directly access the.proto
file from the current location; for example, if we wanted to have shared libraries for multiple projects.
If you used GCC or Clang in the C/C++ world, this will feel very familiar to you. If you did not, do not worry; this is as simple as it gets.
...