Skip to content
This repository has been archived by the owner on Jun 15, 2024. It is now read-only.

Cannot build with CMake and Make #84

Open
Aschen opened this issue May 24, 2023 · 1 comment · May be fixed by #85
Open

Cannot build with CMake and Make #84

Aschen opened this issue May 24, 2023 · 1 comment · May be fixed by #85

Comments

@Aschen
Copy link

Aschen commented May 24, 2023

Description

I'm trying to build the project using CMake and Make but it appears to have an error at the linking phase, symbols from the protobuf library cannot be found.

The final goal is to develop a Node.js wrapper around the library, you can find the wip repository here: https://github.com/Aschen/node-cld3

Thanks you in advance for your help!

Reproduce

I have the same error both on my local Manjaro or inside Docker with the following Dockerfile:

Dockerfile
# Start from a Ubuntu 20.04 image
FROM ubuntu:22.04

# Avoid timezone interactive dialog
ENV DEBIAN_FRONTEND=noninteractive

# Install necessary packages

RUN apt-get update
RUN apt-get install -y \
  libprotobuf-dev \
  protobuf-compiler \
  cmake \
  git \
  build-essential

# Clone the CLD3 code from the GitHub repository
WORKDIR /opt
RUN git clone https://github.com/google/cld3.git

# Go to the cld3 directory and create a new build directory
WORKDIR /opt/cld3
RUN mkdir build

# # Change to the build directory, run CMake, and then run make
WORKDIR /opt/cld3/build
RUN cmake .. && make

# # Run tests
CMD ["./language_identifier_main", "./getonescriptspan_test", "./language_identifier_features_test"]

Just run docker build . -t cld3

The log is full of those errors:

undefined reference to `google::protobuf::XXXXX'
Complete logs
[  2%] Running C++ protocol buffer compiler on src/task_spec.proto
[  5%] Running C++ protocol buffer compiler on src/feature_extractor.proto
[  8%] Running C++ protocol buffer compiler on src/sentence.proto
[ 10%] Building CXX object CMakeFiles/cld3.dir/cld_3/protos/feature_extractor.pb.cc.o
[ 13%] Building CXX object CMakeFiles/cld3.dir/cld_3/protos/sentence.pb.cc.o
[ 16%] Building CXX object CMakeFiles/cld3.dir/cld_3/protos/task_spec.pb.cc.o
[ 18%] Building CXX object CMakeFiles/cld3.dir/src/base.cc.o
[ 21%] Building CXX object CMakeFiles/cld3.dir/src/embedding_feature_extractor.cc.o
[ 24%] Building CXX object CMakeFiles/cld3.dir/src/embedding_network.cc.o
[ 27%] Building CXX object CMakeFiles/cld3.dir/src/feature_extractor.cc.o
[ 29%] Building CXX object CMakeFiles/cld3.dir/src/feature_types.cc.o
[ 32%] Building CXX object CMakeFiles/cld3.dir/src/fml_parser.cc.o
[ 35%] Building CXX object CMakeFiles/cld3.dir/src/language_identifier_features.cc.o
[ 37%] Building CXX object CMakeFiles/cld3.dir/src/lang_id_nn_params.cc.o
[ 40%] Building CXX object CMakeFiles/cld3.dir/src/nnet_language_identifier.cc.o
[ 43%] Building CXX object CMakeFiles/cld3.dir/src/registry.cc.o
[ 45%] Building CXX object CMakeFiles/cld3.dir/src/relevant_script_feature.cc.o
[ 48%] Building CXX object CMakeFiles/cld3.dir/src/sentence_features.cc.o
[ 51%] Building CXX object CMakeFiles/cld3.dir/src/task_context.cc.o
[ 54%] Building CXX object CMakeFiles/cld3.dir/src/task_context_params.cc.o
[ 56%] Building CXX object CMakeFiles/cld3.dir/src/unicodetext.cc.o
[ 59%] Building CXX object CMakeFiles/cld3.dir/src/utils.cc.o
[ 62%] Building CXX object CMakeFiles/cld3.dir/src/workspace.cc.o
[ 64%] Building CXX object CMakeFiles/cld3.dir/src/script_span/generated_entities.cc.o
[ 67%] Building CXX object CMakeFiles/cld3.dir/src/script_span/getonescriptspan.cc.o
[ 70%] Building CXX object CMakeFiles/cld3.dir/src/script_span/getonescriptspan_test.cc.o
[ 72%] Building CXX object CMakeFiles/cld3.dir/src/script_span/utf8statetable.cc.o
[ 75%] Building CXX object CMakeFiles/cld3.dir/src/script_span/offsetmap.cc.o
[ 78%] Building CXX object CMakeFiles/cld3.dir/src/script_span/text_processing.cc.o
[ 81%] Building CXX object CMakeFiles/cld3.dir/src/script_span/fixunicodevalue.cc.o
[ 83%] Linking CXX static library libcld3.a
[ 83%] Built target cld3
[ 86%] Building CXX object CMakeFiles/language_identifier_main.dir/src/language_identifier_main.cc.o
[ 89%] Linking CXX executable language_identifier_main
/usr/bin/ld: libcld3.a(nnet_language_identifier.cc.o): in function `chrome_lang_id::NNetLanguageIdentifier::FindLanguageOfValidUTF8(std::string const&)':
nnet_language_identifier.cc:(.text+0xdf5): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_context.cc.o): in function `chrome_lang_id::TaskContext::GetInput(std::string const&)':
task_context.cc:(.text+0x12f): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_context.cc.o): in function `chrome_lang_id::TaskContext::SetParameter(std::string const&, std::string const&)':
task_context.cc:(.text+0x325): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_context.cc:(.text+0x3ab): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_context.cc:(.text+0x3fe): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_context.cc.o): in function `chrome_lang_id::TaskInput::_internal_file_format_size() const':
task_context.cc:(.text._ZNK14chrome_lang_id9TaskInput26_internal_file_format_sizeEv[_ZNK14chrome_lang_id9TaskInput26_internal_file_format_sizeEv]+0x18): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::size() const'
/usr/bin/ld: libcld3.a(task_context.cc.o): in function `chrome_lang_id::TaskInput::_internal_file_format(int) const':
task_context.cc:(.text._ZNK14chrome_lang_id9TaskInput21_internal_file_formatEi[_ZNK14chrome_lang_id9TaskInput21_internal_file_formatEi]+0x20): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Get(int) const'
/usr/bin/ld: libcld3.a(task_context.cc.o): in function `chrome_lang_id::TaskInput::add_file_format(std::string const&)':
task_context.cc:(.text._ZN14chrome_lang_id9TaskInput15add_file_formatERKSs[_ZN14chrome_lang_id9TaskInput15add_file_formatERKSs]+0x1c): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Add()'
/usr/bin/ld: libcld3.a(task_context.cc.o): in function `chrome_lang_id::TaskInput::_internal_record_format_size() const':
task_context.cc:(.text._ZNK14chrome_lang_id9TaskInput28_internal_record_format_sizeEv[_ZNK14chrome_lang_id9TaskInput28_internal_record_format_sizeEv]+0x18): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::size() const'
/usr/bin/ld: libcld3.a(task_context.cc.o): in function `chrome_lang_id::TaskInput::_internal_record_format(int) const':
task_context.cc:(.text._ZNK14chrome_lang_id9TaskInput23_internal_record_formatEi[_ZNK14chrome_lang_id9TaskInput23_internal_record_formatEi]+0x20): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Get(int) const'
/usr/bin/ld: libcld3.a(task_context.cc.o): in function `chrome_lang_id::TaskInput::add_record_format(std::string const&)':
task_context.cc:(.text._ZN14chrome_lang_id9TaskInput17add_record_formatERKSs[_ZN14chrome_lang_id9TaskInput17add_record_formatERKSs]+0x1c): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Add()'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Token_BreakLevel_Name(chrome_lang_id::Token_BreakLevel)':
sentence.pb.cc:(.text+0x7d): undefined reference to `google::protobuf::internal::InitializeEnumStrings(google::protobuf::internal::EnumEntry const*, int const*, unsigned long, google::protobuf::internal::ExplicitlyConstructed<std::string, 1ul>*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Sentence::Sentence(chrome_lang_id::Sentence const&)':
sentence.pb.cc:(.text+0x33b): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x38c): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Sentence::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
sentence.pb.cc:(.text+0x5f8): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x652): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x7dc): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Sentence::MergeFrom(chrome_lang_id::Sentence const&)':
sentence.pb.cc:(.text+0xd4d): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: sentence.pb.cc:(.text+0xdb2): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Token::Token(chrome_lang_id::Token const&)':
sentence.pb.cc:(.text+0x11ce): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x121f): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x1270): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):sentence.pb.cc:(.text+0x12c1): more undefined references to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)' follow
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Token::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
sentence.pb.cc:(.text+0x1586): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x16d0): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x172a): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x1784): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x182e): undefined reference to `google::protobuf::internal::WriteVarint(unsigned int, unsigned long, std::string*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x1910): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Token::MergeFrom(chrome_lang_id::Token const&)':
sentence.pb.cc:(.text+0x20a5): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x2113): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x2181): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: sentence.pb.cc:(.text+0x21ef): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `google::protobuf::io::EpsCopyOutputStream::WriteStringMaybeAliased(unsigned int, std::string const&, unsigned char*)':
sentence.pb.cc:(.text._ZN6google8protobuf2io19EpsCopyOutputStream23WriteStringMaybeAliasedEjRKSsPh[_ZN6google8protobuf2io19EpsCopyOutputStream23WriteStringMaybeAliasedEjRKSsPh]+0x97): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteStringMaybeAliasedOutline(unsigned int, std::string const&, unsigned char*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `google::protobuf::internal::ArenaStringPtr::InitDefault()':
sentence.pb.cc:(.text._ZN6google8protobuf8internal14ArenaStringPtr11InitDefaultEv[_ZN6google8protobuf8internal14ArenaStringPtr11InitDefaultEv]+0x22): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `google::protobuf::internal::GetEmptyStringAlreadyInited()':
sentence.pb.cc:(.text._ZN6google8protobuf8internal27GetEmptyStringAlreadyInitedEv[_ZN6google8protobuf8internal27GetEmptyStringAlreadyInitedEv]+0x7): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Sentence::_internal_mutable_id()':
sentence.pb.cc:(.text._ZN14chrome_lang_id8Sentence20_internal_mutable_idEv[_ZN14chrome_lang_id8Sentence20_internal_mutable_idEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Sentence::_internal_mutable_text()':
sentence.pb.cc:(.text._ZN14chrome_lang_id8Sentence22_internal_mutable_textEv[_ZN14chrome_lang_id8Sentence22_internal_mutable_textEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Token::_internal_mutable_word()':
sentence.pb.cc:(.text._ZN14chrome_lang_id5Token22_internal_mutable_wordEv[_ZN14chrome_lang_id5Token22_internal_mutable_wordEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Token::_internal_mutable_tag()':
sentence.pb.cc:(.text._ZN14chrome_lang_id5Token21_internal_mutable_tagEv[_ZN14chrome_lang_id5Token21_internal_mutable_tagEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `chrome_lang_id::Token::_internal_mutable_category()':
sentence.pb.cc:(.text._ZN14chrome_lang_id5Token26_internal_mutable_categoryEv[_ZN14chrome_lang_id5Token26_internal_mutable_categoryEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):sentence.pb.cc:(.text._ZN14chrome_lang_id5Token23_internal_mutable_labelEv[_ZN14chrome_lang_id5Token23_internal_mutable_labelEv]+0x44): more undefined references to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)' follow
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):(.data.rel+0x48): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):(.data.rel+0x50): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):(.data.rel+0x90): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):(.data.rel+0x98): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):(.data.rel+0xa0): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):(.data.rel+0xa8): more undefined references to `google::protobuf::internal::fixed_address_empty_string' follow
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `void google::protobuf::internal::InternalMetadata::MergeFrom<std::string>(google::protobuf::internal::InternalMetadata const&)':
sentence.pb.cc:(.text._ZN6google8protobuf8internal16InternalMetadata9MergeFromISsEEvRKS2_[_ZN6google8protobuf8internal16InternalMetadata9MergeFromISsEEvRKS2_]+0x3f): undefined reference to `void google::protobuf::internal::InternalMetadata::DoMergeFrom<std::string>(std::string const&)'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o): in function `void google::protobuf::internal::InternalMetadata::Clear<std::string>()':
sentence.pb.cc:(.text._ZN6google8protobuf8internal16InternalMetadata5ClearISsEEvv[_ZN6google8protobuf8internal16InternalMetadata5ClearISsEEvv]+0x24): undefined reference to `void google::protobuf::internal::InternalMetadata::DoClear<std::string>()'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id5TokenE[_ZTVN14chrome_lang_id5TokenE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
/usr/bin/ld: libcld3.a(sentence.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id8SentenceE[_ZTVN14chrome_lang_id8SentenceE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput_Part::TaskInput_Part(chrome_lang_id::TaskInput_Part const&)':
task_spec.pb.cc:(.text+0x156): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1a7): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1f8): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput_Part::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
task_spec.pb.cc:(.text+0x42e): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x488): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x4de): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x569): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput_Part::MergeFrom(chrome_lang_id::TaskInput_Part const&)':
task_spec.pb.cc:(.text+0x9d0): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0xa38): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0xaa0): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::TaskInput(chrome_lang_id::TaskInput const&)':
task_spec.pb.cc:(.text+0xde1): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::RepeatedPtrField(google::protobuf::RepeatedPtrField<std::string> const&)'
/usr/bin/ld: task_spec.pb.cc:(.text+0xdfe): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::RepeatedPtrField(google::protobuf::RepeatedPtrField<std::string> const&)'
/usr/bin/ld: task_spec.pb.cc:(.text+0xe85): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0xed6): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0xefc): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::~RepeatedPtrField()'
/usr/bin/ld: task_spec.pb.cc:(.text+0xf12): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::~RepeatedPtrField()'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::Clear()':
task_spec.pb.cc:(.text+0x1033): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Clear()'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1043): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Clear()'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
task_spec.pb.cc:(.text+0x1190): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x11ea): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x125c): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x12fe): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x14b8): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::_InternalSerialize(unsigned char*, google::protobuf::io::EpsCopyOutputStream*) const':
task_spec.pb.cc:(.text+0x16f4): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteStringOutline(unsigned int, std::string const&, unsigned char*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x18e3): undefined reference to `google::protobuf::io::EpsCopyOutputStream::WriteStringOutline(unsigned int, std::string const&, unsigned char*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::ByteSizeLong() const':
task_spec.pb.cc:(.text+0x1be6): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::size() const'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1c08): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::size() const'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1c22): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Get(int) const'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1c4a): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::size() const'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1c6c): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::size() const'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1c86): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Get(int) const'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::MergeFrom(chrome_lang_id::TaskInput const&)':
task_spec.pb.cc:(.text+0x1ee1): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::MergeFrom(google::protobuf::RepeatedPtrField<std::string> const&)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1efc): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::MergeFrom(google::protobuf::RepeatedPtrField<std::string> const&)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x1fa3): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x2008): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::InternalSwap(chrome_lang_id::TaskInput*)':
task_spec.pb.cc:(.text+0x21a3): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::InternalSwap(google::protobuf::RepeatedPtrField<std::string>*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x21be): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::InternalSwap(google::protobuf::RepeatedPtrField<std::string>*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskOutput::TaskOutput(chrome_lang_id::TaskOutput const&)':
task_spec.pb.cc:(.text+0x2423): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x2474): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x24c5): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x2516): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x2567): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskOutput::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
task_spec.pb.cc:(.text+0x27f8): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x2852): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x28ac): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x2956): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x29ac): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x2a40): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskOutput::MergeFrom(chrome_lang_id::TaskOutput const&)':
task_spec.pb.cc:(.text+0x3005): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x3073): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x30e1): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x314f): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x31bd): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):task_spec.pb.cc:(.text+0x3612): more undefined references to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)' follow
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskSpec_Parameter::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
task_spec.pb.cc:(.text+0x386e): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x38c4): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x3946): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskSpec_Parameter::MergeFrom(chrome_lang_id::TaskSpec_Parameter const&)':
task_spec.pb.cc:(.text+0x3d38): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x3d9d): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskSpec::TaskSpec(chrome_lang_id::TaskSpec const&)':
task_spec.pb.cc:(.text+0x4177): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x41cc): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskSpec::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
task_spec.pb.cc:(.text+0x4470): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x44ca): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x4737): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskSpec::MergeFrom(chrome_lang_id::TaskSpec const&)':
task_spec.pb.cc:(.text+0x4e75): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text+0x4eda): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput_Part::_internal_mutable_file_pattern()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id14TaskInput_Part30_internal_mutable_file_patternEv[_ZN14chrome_lang_id14TaskInput_Part30_internal_mutable_file_patternEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput_Part::_internal_mutable_file_format()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id14TaskInput_Part29_internal_mutable_file_formatEv[_ZN14chrome_lang_id14TaskInput_Part29_internal_mutable_file_formatEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput_Part::_internal_mutable_record_format()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id14TaskInput_Part31_internal_mutable_record_formatEv[_ZN14chrome_lang_id14TaskInput_Part31_internal_mutable_record_formatEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::_internal_mutable_name()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id9TaskInput22_internal_mutable_nameEv[_ZN14chrome_lang_id9TaskInput22_internal_mutable_nameEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::_internal_mutable_creator()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id9TaskInput25_internal_mutable_creatorEv[_ZN14chrome_lang_id9TaskInput25_internal_mutable_creatorEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::_internal_add_file_format()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id9TaskInput25_internal_add_file_formatEv[_ZN14chrome_lang_id9TaskInput25_internal_add_file_formatEv]+0x18): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Add()'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::_internal_add_record_format()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id9TaskInput27_internal_add_record_formatEv[_ZN14chrome_lang_id9TaskInput27_internal_add_record_formatEv]+0x18): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::Add()'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskOutput::_internal_mutable_name()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id10TaskOutput22_internal_mutable_nameEv[_ZN14chrome_lang_id10TaskOutput22_internal_mutable_nameEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskOutput::_internal_mutable_file_format()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id10TaskOutput29_internal_mutable_file_formatEv[_ZN14chrome_lang_id10TaskOutput29_internal_mutable_file_formatEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskOutput::_internal_mutable_record_format()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id10TaskOutput31_internal_mutable_record_formatEv[_ZN14chrome_lang_id10TaskOutput31_internal_mutable_record_formatEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskOutput::_internal_mutable_file_base()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id10TaskOutput27_internal_mutable_file_baseEv[_ZN14chrome_lang_id10TaskOutput27_internal_mutable_file_baseEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskOutput::_internal_mutable_file_extension()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id10TaskOutput32_internal_mutable_file_extensionEv[_ZN14chrome_lang_id10TaskOutput32_internal_mutable_file_extensionEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):task_spec.pb.cc:(.text._ZN14chrome_lang_id18TaskSpec_Parameter22_internal_mutable_nameEv[_ZN14chrome_lang_id18TaskSpec_Parameter22_internal_mutable_nameEv]+0x44): more undefined references to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)' follow
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel+0x18): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel+0x20): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel+0x28): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel+0xa0): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel+0xa8): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel+0xd8): more undefined references to `google::protobuf::internal::fixed_address_empty_string' follow
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::SharedCtor(google::protobuf::Arena*, bool)':
task_spec.pb.cc:(.text._ZN14chrome_lang_id9TaskInput10SharedCtorEPN6google8protobuf5ArenaEb[_ZN14chrome_lang_id9TaskInput10SharedCtorEPN6google8protobuf5ArenaEb]+0x61): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::RepeatedPtrField(google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text._ZN14chrome_lang_id9TaskInput10SharedCtorEPN6google8protobuf5ArenaEb[_ZN14chrome_lang_id9TaskInput10SharedCtorEPN6google8protobuf5ArenaEb]+0x7a): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::RepeatedPtrField(google::protobuf::Arena*)'
/usr/bin/ld: task_spec.pb.cc:(.text._ZN14chrome_lang_id9TaskInput10SharedCtorEPN6google8protobuf5ArenaEb[_ZN14chrome_lang_id9TaskInput10SharedCtorEPN6google8protobuf5ArenaEb]+0xc3): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::~RepeatedPtrField()'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o): in function `chrome_lang_id::TaskInput::SharedDtor()':
task_spec.pb.cc:(.text._ZN14chrome_lang_id9TaskInput10SharedDtorEv[_ZN14chrome_lang_id9TaskInput10SharedDtorEv]+0x9a): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::~RepeatedPtrField()'
/usr/bin/ld: task_spec.pb.cc:(.text._ZN14chrome_lang_id9TaskInput10SharedDtorEv[_ZN14chrome_lang_id9TaskInput10SharedDtorEv]+0xaa): undefined reference to `google::protobuf::RepeatedPtrField<std::string>::~RepeatedPtrField()'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id8TaskSpecE[_ZTVN14chrome_lang_id8TaskSpecE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id18TaskSpec_ParameterE[_ZTVN14chrome_lang_id18TaskSpec_ParameterE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id10TaskOutputE[_ZTVN14chrome_lang_id10TaskOutputE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id9TaskInputE[_ZTVN14chrome_lang_id9TaskInputE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
/usr/bin/ld: libcld3.a(task_spec.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id14TaskInput_PartE[_ZTVN14chrome_lang_id14TaskInput_PartE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
/usr/bin/ld: libcld3.a(fml_parser.cc.o): in function `chrome_lang_id::FMLParser::Parse(std::string const&, chrome_lang_id::FeatureExtractorDescriptor*)':
fml_parser.cc:(.text+0x686): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(fml_parser.cc.o): in function `chrome_lang_id::FMLParser::ParseFeature(chrome_lang_id::FeatureFunctionDescriptor*) [clone .localalias]':
fml_parser.cc:(.text+0x821): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: fml_parser.cc:(.text+0x8d5): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: fml_parser.cc:(.text+0x9a6): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(fml_parser.cc.o): in function `chrome_lang_id::FMLParser::ParseParameter(chrome_lang_id::FeatureFunctionDescriptor*)':
fml_parser.cc:(.text+0xbb9): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(fml_parser.cc.o):fml_parser.cc:(.text+0xc04): more undefined references to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)' follow
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::Parameter::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
feature_extractor.pb.cc:(.text+0x3aa): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: feature_extractor.pb.cc:(.text+0x400): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: feature_extractor.pb.cc:(.text+0x482): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::Parameter::MergeFrom(chrome_lang_id::Parameter const&)':
feature_extractor.pb.cc:(.text+0x878): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: feature_extractor.pb.cc:(.text+0x8dd): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::FeatureFunctionDescriptor::FeatureFunctionDescriptor(chrome_lang_id::FeatureFunctionDescriptor const&)':
feature_extractor.pb.cc:(.text+0xc7f): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: feature_extractor.pb.cc:(.text+0xcd0): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::FeatureFunctionDescriptor::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
feature_extractor.pb.cc:(.text+0xf66): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: feature_extractor.pb.cc:(.text+0xfc0): undefined reference to `google::protobuf::internal::InlineGreedyStringParser(std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: feature_extractor.pb.cc:(.text+0x11db): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::FeatureFunctionDescriptor::MergeFrom(chrome_lang_id::FeatureFunctionDescriptor const&)':
feature_extractor.pb.cc:(.text+0x187c): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: feature_extractor.pb.cc:(.text+0x18e1): undefined reference to `google::protobuf::internal::ArenaStringPtr::Set(std::string const&, google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::FeatureExtractorDescriptor::_InternalParse(char const*, google::protobuf::internal::ParseContext*)':
feature_extractor.pb.cc:(.text+0x1f4b): undefined reference to `google::protobuf::internal::UnknownFieldParse(unsigned int, std::string*, char const*, google::protobuf::internal::ParseContext*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::Parameter::_internal_mutable_name()':
feature_extractor.pb.cc:(.text._ZN14chrome_lang_id9Parameter22_internal_mutable_nameEv[_ZN14chrome_lang_id9Parameter22_internal_mutable_nameEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::Parameter::_internal_mutable_value()':
feature_extractor.pb.cc:(.text._ZN14chrome_lang_id9Parameter23_internal_mutable_valueEv[_ZN14chrome_lang_id9Parameter23_internal_mutable_valueEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::FeatureFunctionDescriptor::_internal_mutable_type()':
feature_extractor.pb.cc:(.text._ZN14chrome_lang_id25FeatureFunctionDescriptor22_internal_mutable_typeEv[_ZN14chrome_lang_id25FeatureFunctionDescriptor22_internal_mutable_typeEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o): in function `chrome_lang_id::FeatureFunctionDescriptor::_internal_mutable_name()':
feature_extractor.pb.cc:(.text._ZN14chrome_lang_id25FeatureFunctionDescriptor22_internal_mutable_nameEv[_ZN14chrome_lang_id25FeatureFunctionDescriptor22_internal_mutable_nameEv]+0x44): undefined reference to `google::protobuf::internal::ArenaStringPtr::Mutable(google::protobuf::Arena*)'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o):(.data.rel+0x18): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o):(.data.rel+0x20): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o):(.data.rel+0x88): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o):(.data.rel+0x90): undefined reference to `google::protobuf::internal::fixed_address_empty_string'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id26FeatureExtractorDescriptorE[_ZTVN14chrome_lang_id26FeatureExtractorDescriptorE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id25FeatureFunctionDescriptorE[_ZTVN14chrome_lang_id25FeatureFunctionDescriptorE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
/usr/bin/ld: libcld3.a(feature_extractor.pb.cc.o):(.data.rel.ro._ZTVN14chrome_lang_id9ParameterE[_ZTVN14chrome_lang_id9ParameterE]+0x40): undefined reference to `google::protobuf::MessageLite::InitializationErrorString() const'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/language_identifier_main.dir/build.make:99: language_identifier_main] Error 1
make[1]: *** [CMakeFiles/Makefile2:115: CMakeFiles/language_identifier_main.dir/all] Error 2
make: *** [Makefile:91: all] Error 2

I checked and symbols seems to exists in the system library:

$ nm -gDC /usr/lib/libprotobuf.so | grep InitializationErrorString 
00000000000e9820 T google::protobuf::MessageLite::InitializationErrorString[abi:cxx11]() const
00000000001d6930 T google::protobuf::Message::InitializationErrorString[abi:cxx11]() const

$ nm -gDC /usr/lib/libprotobuf-lite.so | grep InitializationErrorString
0000000000066230 T google::protobuf::MessageLite::InitializationErrorString[abi:cxx11]() const
@Aschen Aschen linked a pull request May 24, 2023 that will close this issue
@Aschen
Copy link
Author

Aschen commented May 24, 2023

The problem was the usage of the old Dual ABI macro (add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0)), I removed it in my PR

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant