我正在使用 protobuf 生成 cpp 代码。
在我的 imagereader.prototxt
node {
name: "Image Reader";
type: ImageReader;
name: "path";
type: pb_string;
#value: "${DIR_DATA}/images/";
value: "/local/git/data/images"";
}
}
代码是根据文件的内容生成的。即在生成的cpp文件中我有一行
/*
* declare instance of node "Image Reader"
*/
sandbox::images::ImageReader node_0(std::string("/local/git/data/images/"));
问题是当然如果另一个开发人员使用该代码,那么它将失败,因为他/她可能没有相同的目录结构。我尝试在 prototxt 文件中使用环境变量 DIR_DATA,但编译器生成的文件的名称完全是 DIR_DATA,当然找不到。
/*
* declare instance of node "Image Reader"
*/
sandbox::images::ImageReader node_0(std::string("${DIR_DATA}/images/"));
有什么办法,protobuf 使用 prototxt 文件中的命令添加头文件?这样,我可以在该头文件中手动#define DIR_DATA。