谷歌:: protobuf :: io :: FileOutputStream没有定义?

时间:2014-07-22 15:02:47

标签: visual-c++ protocol-buffers

我正在尝试使用协议缓冲区将多个消息序列化到一个文件 - 遵循显示here的实现 - 但我遇到了一个问题,我无法访问FileOutputStream类在<zero_copy_stream_impl.h>中定义。

根据API documentationFileOutputStream类位于命名空间google::protobuf::io下 - 但我在此命名空间中可以看到的唯一定义是CodedOutputStream,{{1} },CodedInputStreamZeroCopyOutputStream

有没有人对如何解决这个问题有任何想法?仅供参考,我正在使用带有protobuf-2.4.0a版本的Microsoft Visual Studio 2010。这是我的代码片段和生成的错误消息(Intellisense以及编译器错误):

ZeroCopyInputStream

警告C4996:'_ open':此函数或变量可能不安全。请考虑使用_sopen_s。要禁用弃用,请使用_CRT_SECURE_NO_WARNINGS。

IntelliSense:期望一个类型说明符

错误C2061:语法错误:标识符'FileOutputStream'

错误C2039:'FileOutputStream':不是'google :: protobuf :: io'的成员

1 个答案:

答案 0 :(得分:2)

似乎我的代码明确要求:

#include <google/protobuf/io/zero_copy_stream_impl.h>

我认为默认情况下会包含它,但显然情况并非如此。感谢Kenton Varda指出这一点。