Kouhei Sutou created ARROW-2721: ----------------------------------- Summary: [C++] Link error with Arrow C++ build with -DARROW_ORC=ON on CentOS 7 Key: ARROW-2721 URL: https://issues.apache.org/jira/browse/ARROW-2721 Project: Apache Arrow Issue Type: Bug Components: C++ Reporter: Kouhei Sutou
Build master with -DARROW_ORC=ON: {code:shell} sudo yum install -y epel-release sudo yum groupinstall -y "Development Tools" sudo yum install -y \ autoconf-archive \ boost-devel \ cmake3 \ git \ gobject-introspection-devel \ gtk-doc \ jemalloc-devel \ pkg-config \ tar git clone https://github.com/apache/arrow.git mkdir -p arrow/cpp/build cd arrow/cpp/build LANG=C cmake3 .. -DCMAKE_BUILD_TYPE=release -DARROW_ORC=ON make -j4 sudo make install {code} Sample program: {code:cpp} #include <arrow/api.h> int main(void) { return 0; } {code} Build the sample program: {noformat} % g++ -std=c++11 -o sample $(PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig pkg-config --cflags --libs arrow) sample.cpp /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormat::SerializeUnknownFields(google::protobuf::UnknownFieldSet const&, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::Message::SpaceUsed() const' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::DescriptorPool::FindFileByName(std::string const&) const' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteDouble(int, double, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::BytesUntilTotalBytesLimit() const' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::DescriptorPool::InternalAddGeneratedFile(void const*, int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::New()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::ZeroCopyOutputStream::~ZeroCopyOutputStream()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::Message::CheckTypeAndMergeFrom(google::protobuf::MessageLite const&)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::MessageLite::ParseFromZeroCopyStream(google::protobuf::io::ZeroCopyInputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::ReadRaw(void*, int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::MessageFactory::InternalRegisterGeneratedFile(char const*, void (*)(std::string const&))' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedOutputStream::VarintSize32Fallback(unsigned int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::LogMessage::LogMessage(google::protobuf::LogLevel, char const*, int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::empty_string_' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::StringTypeHandlerBase::Delete(std::string*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedOutputStream::WriteVarint64(unsigned long)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::DescriptorPool::generated_pool()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteEnum(int, int, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteString(int, std::string const&, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(google::protobuf::UnknownFieldSet const&, unsigned char*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::ReadTagFallback()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::OnShutdown(void (*)())' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::RepeatedPtrFieldBase::Swap(google::protobuf::internal::RepeatedPtrFieldBase*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::MessageFactory::generated_factory()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::UnknownFieldSet::AddVarint(int, unsigned long)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::Skip(int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(google::protobuf::UnknownFieldSet const&)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedOutputStream::VarintSize64(unsigned long)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::ReadVarint32Fallback(unsigned int*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteSInt64(int, long, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::string*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::BytesUntilLimit() const' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::MessageLite::SerializeToString(std::string*) const' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteFixed64(int, unsigned long, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::LogMessage::~LogMessage()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteUInt32(int, unsigned int, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::LogFinisher::operator=(google::protobuf::internal::LogMessage&)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::InitEmptyString()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteSInt32(int, int, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::UnknownFieldSet::MergeFrom(google::protobuf::UnknownFieldSet const&)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormat::SkipField(google::protobuf::io::CodedInputStream*, unsigned int, google::protobuf::UnknownFieldSet*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::RepeatedPtrFieldBase::Reserve(int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedOutputStream::WriteStringWithSizeToArray(std::string const&, unsigned char*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `typeinfo for google::protobuf::io::ZeroCopyOutputStream' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::MessageLite::ParseFromString(std::string const&)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::Message::GetTypeName() const' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::LogMessage::operator<<(char const*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::string*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::UnknownFieldSet::~UnknownFieldSet()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteUInt64(int, unsigned long, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `typeinfo for google::protobuf::Message' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::ReflectionOps::Merge(google::protobuf::Message const&, google::protobuf::Message*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::Message::~Message()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::MessageLite::ParseFromArray(void const*, int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::Message::DiscardUnknownFields()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(google::protobuf::Descriptor const*, google::protobuf::Message const*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedOutputStream::WriteVarint32(unsigned int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::GoogleOnceInitImpl(long*, google::protobuf::Closure*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::UnknownFieldSet::ClearFallback()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedOutputStream::WriteVarint32FallbackToArray(unsigned int, unsigned char*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::UnknownFieldSet::UnknownFieldSet()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(int, google::protobuf::MessageLite const&, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedOutputStream::WriteVarint64ToArray(unsigned long, unsigned char*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::ReadLittleEndian64Fallback(unsigned long*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::FunctionClosure0::~FunctionClosure0()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteBytesMaybeAliased(int, std::string const&, google::protobuf::io::CodedOutputStream*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::Message::InitializationErrorString() const' /usr/local/lib64/libarrow.so: undefined reference to `typeinfo for google::protobuf::io::ZeroCopyInputStream' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::empty_string_once_init_' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::VerifyVersion(int, int, char const*)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::ZeroCopyInputStream::~ZeroCopyInputStream()' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::PushLimit(int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::PopLimit(int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::GeneratedMessageReflection::GeneratedMessageReflection(google::protobuf::Descriptor const*, google::protobuf::Message const*, int const*, int, int, int, google::protobuf::DescriptorPool const*, google::protobuf::MessageFactory*, int)' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::io::CodedInputStream::ReadVarint64Fallback(unsigned long*)' /usr/local/lib64/libarrow.so: undefined reference to `vtable for google::protobuf::internal::FunctionClosure0' /usr/local/lib64/libarrow.so: undefined reference to `google::protobuf::internal::WireFormatLite::WriteBool(int, bool, google::protobuf::io::CodedOutputStream*)' collect2: error: ld returned 1 exit status {noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005)