与protobuf的不明确的符号字符串

时间:2013-12-08 18:05:43

标签: c++ protocol-buffers irrlicht

在包含protobuf 2.5和irrlicht 3d引擎后,我收到了以下编译错误:

...\irrlicht\trunk\source\protobuf-2.5.0rc1\src\google\protobuf\generated_message_util.h(71):
error C2872: 'string' : ambiguous symbol 
could be 'c:\msdev2010\vc\include\xstring(2062) : std::basic_string<_Elem,_Traits,_Ax> 
std::string' 
with 
[ 
    _Elem=char, 
    _Traits=std::char_traits<char>, 
    _Ax=std::allocator<char> 
] 
or
c:\projects\ultimatestrategy\irrlicht\include\irrstring.h(74) : irr::core::string

现在我意识到protobuf导致问题,因为他们不使用完整的符号名称,而是使用指令使用

问题:解决其中一个或两个库的最快方法是什么,以便它们能够很好地协同工作?

注意:只有我在此问题上找到的参考:https://code.google.com/p/protobuf/issues/detail?id=544&q=ambiguous%20symbol&colspec=ID%20Type%20Status%20Priority%20FixedIn%20Owner%20Summary

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我最终在google的代码中用 std :: string 替换了所有字符串。 我还用 std :: map 替换了所有地图

不幸的是,每次更新protobuf库时都需要这样做,这是非常不切实际的。