2013-05-02 55 views
0

我一直試圖讓automake自動確定如何從谷歌協議生成.pb.cc和.pb.hh文件緩衝區.proto描述,但沒有運氣。無法讓automake使用谷歌協議緩衝區將.proto文件構建到.pb.cc文件中

我試過在SO上使用this post,但它仍然不起作用。

下面是從我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 

在試圖運行make,我得到:

> 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二進制填充。當它對GPB依賴性進行檢查時。我已經驗證它是「/ opt/common/protobuf/-VERSION-/bin/protoc」的形式,這是我保存GPB庫的地方。

我試圖讓我的.proto文件保存在src/proto中,並讓protoc將編譯後的cc和h文件吐出到src中。但是,即使將我的.proto文件移動到src /中也不起作用,所以我不認爲這是問題所在。據我所知,make甚至不嘗試調用protoc,所以我不確定規則是否被make正確解釋。

在此先感謝您的幫助。

回答

0

沒有名爲--proto_dir的協議參數。我希望你的意思是--proto_path

相關問題