1

我想在 Windows 下使用 nmake.exe 来构建一个使用 Google protobufs 的 C++ 项目。这需要为项目中的所有 .proto 文件执行 protoc.exe。

我遇到的问题是在 nmake.exe 中提出一个规则,该规则将编译一个 .proto 文件,这是由于 protoc.exe 的输出是 .pb.cc 形式的文件这一事实引起的

以下都不起作用:

.SUFFIXES: .proto .cc

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

或者

.SUFFIXES: .proto .pb.cc

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

第二个产生以下错误:

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

这并不奇怪,但是第一个默默地失败了。我相当肯定第一种情况会失败,因为文件名“stems”,因为 gnu make 调用它们,由于在名称中添加了“.pb”序列而不匹配。

4

0 回答 0