关于protobuf报错'tr1/unordered_map' file not found

这个问题的话,查了很多资料,总的来说就是C++版本的问题,新版本的namespace结构变化了,C++库的层级结构变化了

1.config.h

HASH_MAP_H    HASH_SET_H

新版本的头文件查找修改为<unordered_map>,其他以 tr1/xxx 引入的 也改为 xxx

HASH_NAMESPACE std::str

tr1新版本已经移除掉了,所以这里没有了中间层,直接设置为 std即可

2.message.cc

Implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'

这里提示的是 undefined template 找不到定义,说明我们少include了头文件,这个头文件也很好确定,就是 <istream>

 

做了以上修改之后,编译问题就修改好了。ps: 理论上不会有问题,但是需要实践一下,建议可以先由Mac编译出.a文件,再使用(第一步的修改依旧还是需要的)

posted @ 2021-11-02 11:32  雨筱逸悠  阅读(431)  评论(0编辑  收藏  举报