Por algum motivo, preciso usar o protobuf 2.4.1 em meu projeto no OS X El Capitan. No entanto, o homebrew removeu o protobuf241 de sua fórmula. Eu o instalo de acordo com a resposta do @kksensei manualmente e tenho que corrigir alguns erros durante o processo.
Durante o processo de criação, recebo 3 erros como o seguinte:
google/protobuf/message.cc:130:60: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'
return ParseFromZeroCopyStream(&zero_copy_input) && input->eof();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here
class _LIBCPP_TYPE_VIS basic_istream;
^
google/protobuf/message.cc:135:67: error: implicit instantiation of undefined template 'std::__1::basic_istream<char, std::__1::char_traits<char> >'
return ParsePartialFromZeroCopyStream(&zero_copy_input) && input->eof();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:108:28: note: template is declared here
class _LIBCPP_TYPE_VIS basic_istream;
^
google/protobuf/message.cc:175:16: error: implicit instantiation of undefined template 'std::__1::basic_ostream<char, std::__1::char_traits<char> >'
return output->good();
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/c++/v1/iosfwd:110:28: note: template is declared here
class _LIBCPP_TYPE_VIS basic_ostream;
^
(Desculpe, não sei como anexar código quando o código contém '`')
Se você receber o mesmo erro, edite src / google / protobuf / message.cc, adicione #include <istream>
na parte superior do arquivo e faça $ make
novamente e não deve obter erros. Depois disso, faça $ sudo make install
. Quando a instalação terminar, $protoc --version
deve exibir o resultado correto.
.pb.h
e.pb.cc
.