Tengo el siguiente código en un archivo de búfer de protocolo (pcfg_lm.proto):En Buffers de protocolo, ¿cómo importar un archivo desde el directorio de nivel superior?
import "../types/language.proto";
package nlp;
message PCFGProto {
required Language lang = 1;
}
Y por supuesto, hay un archivo existe en el proto ../types/language.proto. Sin embargo, cuando ejecute el comando:
protoc pcfg_lm.proto --cpp_out=/tmp
Aquí está el mensaje de error:
../types/language.proto: File not found.
pcfg_lm.proto: Import "../types/language.proto" was not found or had errors.
pcfg_lm.proto:6:12: "Language" is not defined.
Creo que tiene que haber alguna manera de especificar los nombres de los archivos en los directorios de nivel superior, sin utilizar el - Yo señalo ¿Pero cómo hago eso?
Me encontré con el mismo problema, pero no recuerdo la solución. IIRC la ruta de importación se interpreta en relación con el directorio donde se llama a un protocolo, no en relación con el archivo proto actual. O algo así ... – LumpN
Demonios, sí, acabo de encontrar un viejo código de proto. Es como lo describí. Estoy llamando al protocolo desde el directorio base de proyectos como 'protoc --cpp_out = graph/node.proto graph/edge.proto' y en edge hay' import "graph/node.proto"; 'aunque ambos archivos están en el mismo directorio – LumpN