我一直試圖讓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正確解釋。
在此先感謝您的幫助。