2013-05-02 4 views
0

J'ai essayé d'obtenir automake pour déterminer automatiquement comment créer des fichiers .pb.cc et .pb.hh à partir d'un protocole google buffers .proto description, mais n'ont pas eu de chance.Impossible d'obtenir automake pour créer des fichiers .proto dans des fichiers .pb.cc avec des tampons de protocole google

J'ai essayé d'utiliser this post sur SO, mais cela ne fonctionne toujours pas.

Voici un extrait de mon Makefile.am:

[email protected][email protected] 
%.pb.h %.pb.cc: %.proto 
    $(PROTOC) --proto_dir=$(srcdir)/proto --cpp_out=$(srcdir) $(srcdir)/proto/$< 

libtass_a_SOURCES = \ 
    $(srcdir)/tass.pb.cc 

nobase_include_HEADERS = \ 
    $(srcdir)/tass.pb.h 

Lors de la tentative d'exécution faire, je reçois:

> Making all in src 
> make[1]: Entering directory `/project/tass/src' 
> make[1]: *** No rule to make target `tass.pb.cc', needed by `tass.pb.o'. Stop. 
> make[1]: Leaving directory `/project/tass/src' 
> make: *** [all-recursive] Error 1 

ac_proto_cmd est rempli avec le chemin vers le binaire protoc par configure. ac quand il vérifie la dépendance de GPB. J'ai vérifié qu'il est de la forme "/ opt/common/protobuf/-VERSION-/bin/protoc" qui est où je garde la bibliothèque GPB. J'essaie de conserver mes fichiers .proto dans src/proto, et d'avoir le protocole cracher les fichiers cc et h compilés dans src. Cependant, même en déplaçant mes fichiers .proto dans src/ne fonctionne pas, je ne pense pas que ce soit le problème. Pour autant que je sache, make ne tente même pas d'invoquer protoc, donc je ne suis pas sûr que la règle soit interprétée correctement du tout par make.

Merci d'avance pour toute aide à ce sujet.

Répondre

0

Il n'y a pas d'argument de protocole nommé --proto_dir. Je suppose que vous vouliez dire --proto_path.

Questions connexes