1

Windows で nmake.exe を使用して、Google protobuf を利用する C++ プロジェクトを構築したいと考えています。これには、プロジェクト内のすべての .proto ファイルに対して protoc.exe を実行する必要があります。

私が抱えている問題は、protoc.exe からの出力が .pb.cc 形式のファイルであるという事実が原因で、.proto ファイルをコンパイルする nmake.exe のルールを考え出すことです。

次のいずれも機能しません。

.SUFFIXES: .proto .cc

.proto.cc:
        protoc.exe -cpp_out=<target folder> $<

また

.SUFFIXES: .proto .pb.cc

.proto.pb.cc:
        protoc.exe -cpp_out=<target folder> $<

2 番目は、次のエラーを生成します。

filename.mk(3) : fatal error U1092: too many names in rule

これは大きな驚きではありませんが、最初の例は黙って失敗します。最初のケースが失敗するのはかなり確実です。名前に「.pb」シーケンスが追加されているため、gnu make が呼び出すファイル名「ステム」が一致しないためです。

4

0 に答える 0