I am trying to build the latest Marian on an AWS platform, with the SentencePiece option turned ON. This require protobuf, which I have compiled and installed in a local directory. Building seems to go fine until time to link marian-decoder. At that time I get the error shown below.
Has anyone seen this before? How can I get the marian build to pick up my locally installed protobuf?
Errors:
[ 72%] Linking CXX executable ../marian-decoder
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::MessageLite::SerializeAsString[abi:cxx11]() const'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteStringMaybeAliasedOutline(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned char*)'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::Reflection::SetString(google::protobuf::Message*, google::protobuf::FieldDescriptor const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Get(int) const'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Add()'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::Message::Utf8DebugString[abi:cxx11]() const'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::Reflection::AddString(google::protobuf::Message*, google::protobuf::FieldDescriptor const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) const'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::EnumDescriptor::FindValueByName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::begin() const'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::Descriptor::FindFieldByName(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::RepeatedPtrField(google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::RepeatedPtrField(google::protobuf::Arena*)'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::Message::GetTypeName[abi:cxx11]() const'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::end() const'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::internal::fixed_address_empty_string[abi:cxx11]'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::Clear()'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::MergeFrom(google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > const&)'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::Message::InitializationErrorString[abi:cxx11]() const'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteStringOutline(unsigned int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned char*)'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::Descriptor::DebugString[abi:cxx11]() const'
3rd_party/sentencepiece/src/libsentencepiece_train.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::size() const'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::RepeatedPtrField<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >::~RepeatedPtrField()'
3rd_party/sentencepiece/src/libsentencepiece.so.0.0.0: undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, char const*, google::protobuf::internal::ParseContext*)'
collect2: error: ld returned 1 exit status
make[2]: *** [marian-decoder] Error 1
make[1]: *** [src/CMakeFiles/marian_decoder.dir/all] Error 2
make: *** [all] Error 2