2013-05-02 1 views
0

automake가 Google 프로토콜에서 .pb.cc 및 .pb.hh 파일을 빌드하는 방법을 자동으로 결정하려고했습니다. .proto 설명을 버퍼링하지만 운이 없었습니다..proto 파일을 빌드하는 automake를 google 프로토콜 버퍼가있는 .pb.cc 파일로 만들 수 없습니다.

this post을 사용해 보았지만 여전히 작동하지 않습니다.

가 여기 내 Makefile.am에서 발췌 한 것입니다 : make를 실행하려고하면

[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 

, 내가 얻을 :

> 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는 구성으로 protoc 바이너리에 대한 경로로 채워집니다. ac는 GPB 의존성에 대한 체크를 할 때. 나는 GPB 라이브러리를 유지하는 "/ opt/common/protobuf/-VERSION-/bin/protoc"형식인지 확인했습니다.

src/proto에 내 .proto 파일을 보관하고 protoc에서 컴파일 된 cc 및 h 파일을 src에 저장하려고합니다. 그러나 내 .proto 파일을 src로 옮기더라도 작동하지 않으므로 문제는 아닌 것 같습니다. 내가 말할 수있는 한, make는 protoc을 호출하려고 시도조차하지 않기 때문에, 규칙이 make에 의해 올바르게 해석되고 있는지 확신 할 수 없다.

미리 감사드립니다.

답변

1

여기에서 문제는 빌드 의존성 그래서 당신이 줄을 추가해야합니다 :

BUILT_SOURCES = $(srcdir)/tass.pb.cc 
관련 문제