【发布时间】:2014-08-06 14:22:03
【问题描述】:
我使用 protoc.exe 工具生成了 .h 和 .cc,当我将 pb.h 包含在我的解决方案中时,它无法编译
test.pb.h(17): 致命错误 C1060: 编译器堆空间不足
我添加了/Zm 选项(我尝试了所有因素,即/Zm2000、/Zm200、/Zm1000 等...
但错误仍然出现......
有什么想法吗?因为我有点卡住了,
谢谢!
原型文件:
package MSGTest;
enum EnumMsg
{
EMF_A = 1;
EMF_B = 2;
}
message MSGExtended
{
enum MSG_TYPE
{
MSGT_SP = 1;
}
required MSG_TYPE type = 1;
}
message MSGExtended2
{
enum MSG_TYPE
{
MSGT_SP = 1;
}
required MSG_TYPE type = 1;
}
message MSGExtendedb
{
required EnumMsg from = 1;
optional MSGExtended msga = 2;
optional MSGExtendedb msgb = 3;
}
【问题讨论】:
-
查看生成的文件。是否有无限递归包含之类的?是所有 protobuf 文件都发生这种情况,还是只是一个特别复杂的文件?
-
您的标题也显示为 Visual Studio 2012(或已使用),但您使用了
visual-studio-2013标记。您是否发现这两个版本都有这个问题? -
抱歉,我只用 Visual Studio 2012 测试这个,protobuf 很简单,发布它有问题
-
MSGExtendedb包含自己?是不是打算改为MSGExtended2? -
知道这个问题是发生在任何其他协议上还是只发生在这个特定协议上仍然会有所帮助。
标签: visual-c++ visual-studio-2012 protocol-buffers