1

我正在使用 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。

4

0 回答 0