关于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文件,再使用(第一步的修改依旧还是需要的)