[ 
https://issues.apache.org/jira/browse/ARROW-7707?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Antoine Pitrou closed ARROW-7707.
---------------------------------
    Resolution: Not A Problem

> [C++] Build errors when using library that is built from source
> ---------------------------------------------------------------
>
>                 Key: ARROW-7707
>                 URL: https://issues.apache.org/jira/browse/ARROW-7707
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: C++
>    Affects Versions: 0.15.1
>            Reporter: Hossein R
>            Priority: Minor
>
> Hi there I built the library from source and now trying to write parquet 
> files. Mainly using the example code, but I am getting link errors I cannot 
> seem to be able to fix.
> This is how I build the library:
> {noformat}
> -> % cmake .. -DARROW_PARQUET:BOOL=ON -DPARQUET_BUILD_EXAMPLES:BOOL=ON 
> -- Building using CMake version: 3.16.2-- The C compiler identification is 
> GNU 5.4.0
> -- The CXX compiler identification is GNU 5.4.0-- Check for working C 
> compiler: /usr/bin/cc
> -- Check for working C compiler: /usr/bin/cc -- works-- Detecting C compiler 
> ABI info
> -- Detecting C compiler ABI info - done-- Detecting C compile features
> -- Detecting C compile features - done
> -- Check for working CXX compiler: /usr/bin/c++-- Check for working CXX 
> compiler: /usr/bin/c++ -- works
> -- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done
> -- Detecting CXX compile features-- Detecting CXX compile features - done
> -- Arrow version: 0.15.1 (full: '0.15.1')-- Arrow SO version: 15 (full: 
> 15.1.0)
> -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") -- 
> clang-tidy not found
> -- clang-format not found-- infer not found
> -- Found PythonInterp: /home/hosanez/env/bin/python (found version "2.7.12") 
> -- Found cpplint executable at 
> /home/hosanez/scratch/apache-arrow-0.15.1/cpp/build-support/cpplint.py
> -- Compiler command: env LANG=C /usr/bin/c++ -v
> -- Compiler version: Using built-in specs.
> COLLECT_GCC=/usr/bin/c++
> COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
> Target: x86_64-linux-gnu
> Configured with: ../src/configure -v --with-pkgversion='Ubuntu 
> 5.4.0-6ubuntu1~16.04.12' 
> --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs 
> --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr 
> --program-suffix=-5 --enable-shared --enable-linker-build-id 
> --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix 
> --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu 
> --enable-libstdcxx-debug --enable-libstdcxx-time=yes 
> --with-default-libstdcxx-abi=new --enable-gnu-unique-object 
> --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib 
> --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo 
> --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home 
> --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 
> --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 
> --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar 
> --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 
> --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib 
> --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu 
> --host=x86_64-linux-gnu --target=x86_64-linux-gnu
> Thread model: posix
> gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12) 
> -- Compiler id: GNU
> Selected compiler gcc 5.4.0-- Performing Test CXX_SUPPORTS_SSE4_2
> -- Performing Test CXX_SUPPORTS_SSE4_2 - Success-- Performing Test 
> CXX_SUPPORTS_ALTIVEC
> -- Performing Test CXX_SUPPORTS_ALTIVEC - Failed-- Performing Test 
> CXX_SUPPORTS_ARMCRC
> -- Performing Test CXX_SUPPORTS_ARMCRC - Failed-- Performing Test 
> CXX_SUPPORTS_ARMV8_CRC_CRYPTO
> -- Performing Test CXX_SUPPORTS_ARMV8_CRC_CRYPTO - Failed-- Arrow build 
> warning level: PRODUCTION
> Using ld linkerConfigured for RELEASE build (set with cmake 
> -DCMAKE_BUILD_TYPE=\{release,debug,...})
> -- Build Type: RELEASE
> -- Using AUTO approach to find dependencies
> -- AWSSDK_VERSION: 1.7.160
> -- BOOST_VERSION: 1.67.0
> -- BROTLI_VERSION: v1.0.7
> -- BZIP2_VERSION: 1.0.8
> -- CARES_VERSION: 1.15.0
> -- DOUBLE_CONVERSION_VERSION: v3.1.5
> -- FLATBUFFERS_VERSION: v1.11.0
> -- GBENCHMARK_VERSION: v1.5.0
> -- GFLAGS_VERSION: v2.2.0
> -- GLOG_VERSION: v0.3.5
> -- GRPC_VERSION: v1.20.0
> -- GTEST_VERSION: 1.8.1
> -- JEMALLOC_VERSION: 5.2.1
> -- LZ4_VERSION: v1.8.3
> -- MIMALLOC_VERSION: 270e765454f98e8bab9d42609b153425f749fff6
> -- ORC_VERSION: 1.5.5
> -- PROTOBUF_VERSION: v3.7.1
> -- RAPIDJSON_VERSION: 2bbd33b33217ff4a73434ebf10cdac41e2ef5e34
> -- RE2_VERSION: 2019-08-01
> -- SNAPPY_VERSION: 1.1.7
> -- THRIFT_VERSION: 0.12.0
> -- THRIFT_MD5_CHECKSUM: 3deebbb4d1ca77dd9c9e009a1ea02183
> -- URIPARSER_VERSION: 0.9.3
> -- ZLIB_VERSION: 1.2.11
> -- ZSTD_VERSION: v1.4.3
> -- Looking for pthread.h
> -- Looking for pthread.h - found
> -- Performing Test CMAKE_HAVE_LIBC_PTHREAD
> -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
> -- Check if compiler accepts -pthread
> -- Check if compiler accepts -pthread - yes
> -- Found Threads: TRUE 
> -- Found Boost: /usr/local/include (found suitable version "1.60.0", minimum 
> required is "1.58") found components: regex system filesystem 
> -- Boost include dir: /usr/local/include
> -- Boost libraries: 
> /usr/lib/x86_64-linux-gnu/libboost_regex.so/usr/lib/x86_64-linux-gnu/libboost_system.so/usr/lib/x86_64-linux-gnu/libboost_filesystem.so
> -- Found DoubleConversion: /usr/lib/x86_64-linux-gnu/libdouble-conversion.so 
> -- Performing Test DOUBLE_CONVERSION_HAS_CASE_INSENSIBILITY
> -- Performing Test DOUBLE_CONVERSION_HAS_CASE_INSENSIBILITY - Failed
> -- Checking for modules 'libbrotlicommon;libbrotlienc;libbrotlidec'
> -- No package 'libbrotlicommon' found
> -- No package 'libbrotlienc' found
> -- No package 'libbrotlidec' found
> -- Could NOT find Brotli (missing: BROTLI_COMMON_LIBRARY BROTLI_ENC_LIBRARY 
> BROTLI_DEC_LIBRARY BROTLI_INCLUDE_DIR) 
> -- Building brotli from source
> -- Building with OpenSSL (Version: 1.0.2g) support
> -- Checking for module 'libglog'
> -- No package 'libglog' found
> -- Could NOT find GLOG (missing: GLOG_INCLUDE_DIR GLOG_LIB) 
> -- Building glog from source
> -- Found gflagsAlt: /usr/lib/x86_64-linux-gnu/libgflags.so 
> -- Checking for module 'thrift'
> -- No package 'thrift' found
> -- Could NOT find Thrift (missing: THRIFT_STATIC_LIB THRIFT_INCLUDE_DIR 
> THRIFT_COMPILER) 
> Building Apache Thrift from source
> Downloading Apache Thrift from 
> http://apache-mirror.8birdsvideo.com//thrift/0.12.0/thrift-0.12.0.tar.gz
> -- Building (vendored) jemalloc from source
> -- Could NOT find RapidJSONAlt (missing: RAPIDJSON_INCLUDE_DIR) (found 
> suitable version "2bbd33b33217ff4a73434ebf10cdac41e2ef5e34", minimum required 
> is "1.1.0")
> -- Building rapidjson from source
> -- Could NOT find FlatbuffersAlt (missing: FLATBUFFERS_LIB 
> FLATBUFFERS_INCLUDE_DIR FLATC) 
> -- Building flatbuffers from source
> -- Found ZLIB: /usr/lib/x86_64-linux-gnu/libz.so (found version "1.2.8") 
> -- Checking for module 'liblz4'
> -- No package 'liblz4' found
> -- Could NOT find Lz4 (missing: LZ4_LIB LZ4_INCLUDE_DIR) 
> -- Building lz4 from source
> -- Checking for module 'libzstd'
> -- No package 'libzstd' found
> -- Could NOT find ZSTD (missing: ZSTD_LIB ZSTD_INCLUDE_DIR) 
> -- Building zstd from source
> -- Found hdfs.h at: 
> /home/hosanez/scratch/apache-arrow-0.15.1/cpp/thirdparty/hadoop/include/hdfs.h
> -- CMAKE_C_FLAGS: -O3 -DNDEBUG -Wall -Wno-attributes -msse4.2
> -- CMAKE_CXX_FLAGS: -fdiagnostics-color=always -O3 -DNDEBUG -Wall 
> -Wno-attributes -msse4.2 
> -- flatc: 
> /home/hosanez/scratch/apache-arrow-0.15.1/cpp/release/flatbuffers_ep-prefix/src/flatbuffers_ep-install/bin/flatc
> -- Looking for backtrace
> -- Looking for backtrace - found
> -- backtrace facility detected in default set of libraries
> -- Found Backtrace: /usr/include 
> -- ---------------------------------------------------------------------
> -- Arrow version: 0.15.1
> -- 
> -- Build configuration summary:
> -- Generator: Unix Makefiles
> -- Build type: RELEASE
> -- Source directory: /home/hosanez/scratch/apache-arrow-0.15.1/cpp
> -- Install prefix: /usr/local
> -- 
> -- Compile and link options:
> -- Compiler flags to append when compiling Arrow "" [default] [ARROW_CXXFLAGS]
> -- Build static libraries ON [default] [ARROW_BUILD_STATIC]
> -- Build shared libraries ON [default] [ARROW_BUILD_SHARED]
> -- Exclude deprecated APIs from build OFF [default] [ARROW_NO_DEPRECATED_API]
> -- Use ccache when compiling (if available) ON [default] [ARROW_USE_CCACHE]
> -- Use ld.gold for linking on Linux (if available) OFF [default] 
> [ARROW_USE_LD_GOLD]
> -- Build with SIMD optimizations ON [default] [ARROW_USE_SIMD]
> -- Build with SSE4.2 if compiler has support ON [default] [ARROW_SSE42]
> -- Build with Altivec if compiler has support ON [default] [ARROW_ALTIVEC]
> -- Build Arrow libraries with RATH set to $ORIGIN OFF [default] 
> [ARROW_RPATH_ORIGIN]
> -- Build Arrow libraries with install_name set to @rpath ON [default] 
> [ARROW_INSTALL_NAME_RPATH]
> -- Pass -ggdb flag to debug builds ON [default] [ARROW_GGDB_DEBUG]
> -- 
> -- Test and benchmark options:
> -- Build the Arrow examples OFF [default] [ARROW_BUILD_EXAMPLES]
> -- Build the Arrow googletest unit tests OFF [default] [ARROW_BUILD_TESTS]
> -- Build the Arrow integration test executables OFF [default] 
> [ARROW_BUILD_INTEGRATION]
> -- Build the Arrow micro benchmarks OFF [default] [ARROW_BUILD_BENCHMARKS]
> -- Build the Arrow micro reference benchmarks OFF [default] 
> [ARROW_BUILD_BENCHMARKS_REFERENCE]
> -- Linkage of Arrow libraries with unit tests executables. "shared" [default] 
> [ARROW_TEST_LINKAGE] [shared|static]
> -- Build Arrow Fuzzing executables OFF [default] [ARROW_FUZZING]
> -- Enable unit tests which use large memory OFF [default] 
> [ARROW_LARGE_MEMORY_TESTS]
> -- 
> -- Lint options:
> -- Only define the lint and check-format targets OFF [default] 
> [ARROW_ONLY_LINT]
> -- If off, 'quiet' flags will be passed to linting tools OFF [default] 
> [ARROW_VERBOSE_LINT]
> -- Build with C++ code coverage enabled OFF [default] 
> [ARROW_GENERATE_COVERAGE]
> -- 
> -- Checks options:
> -- Run the test suite using valgrind --tool=memcheck OFF [default] 
> [ARROW_TEST_MEMCHECK]
> -- Enable Address Sanitizer checks OFF [default] [ARROW_USE_ASAN]
> -- Enable Thread Sanitizer checks OFF [default] [ARROW_USE_TSAN]
> -- Enable Undefined Behavior sanitizer checks OFF [default] [ARROW_USE_UBSAN]
> -- 
> -- Project component options:
> -- Build Arrow commandline utilities ON [default] [ARROW_BUILD_UTILITIES]
> -- Build the Arrow Compute Modules ON [default] [ARROW_COMPUTE]
> -- Build the Arrow CUDA extensions (requires CUDA toolkit) OFF [default] 
> [ARROW_CUDA]
> -- Build the Arrow Dataset Modules ON [default] [ARROW_DATASET]
> -- Build the Arrow Filesystem Layer ON [default] [ARROW_FILESYSTEM]
> -- Build the Arrow Flight RPC System (requires GRPC, Protocol Buffers) OFF 
> [default] [ARROW_FLIGHT]
> -- Build the Gandiva libraries OFF [default] [ARROW_GANDIVA]
> -- Build the Arrow HDFS bridge ON [default] [ARROW_HDFS]
> -- Build the HiveServer2 client and Arrow adapter OFF [default] 
> [ARROW_HIVESERVER2]
> -- Build the Arrow IPC extensions ON [default] [ARROW_IPC]
> -- Build the Arrow jemalloc-based allocator ON [default] [ARROW_JEMALLOC]
> -- Build the Arrow JNI lib OFF [default] [ARROW_JNI]
> -- Build Arrow with JSON support (requires RapidJSON) ON [default] 
> [ARROW_JSON]
> -- Build the Arrow mimalloc-based allocator OFF [default] [ARROW_MIMALLOC]
> -- Build the Parquet libraries ON [ARROW_PARQUET]
> -- Build the Arrow ORC adapter OFF [default] [ARROW_ORC]
> -- Build the plasma object store along with Arrow OFF [default] [ARROW_PLASMA]
> -- Build the plasma object store java client OFF [default] 
> [ARROW_PLASMA_JAVA_CLIENT]
> -- Build the Arrow CPython extensions OFF [default] [ARROW_PYTHON]
> -- Build Arrow with S3 support (requires the AWS SDK for C++) OFF [default] 
> [ARROW_S3]
> -- Build Arrow with TensorFlow support enabled OFF [default] 
> [ARROW_TENSORFLOW]
> -- 
> -- Thirdparty toolchain options:
> -- Method to use for acquiring arrow's build dependencies "AUTO" [default] 
> [ARROW_DEPENDENCY_SOURCE] [AUTO|BUNDLED|SYSTEM|CONDA|BREW]
> -- Show output from ExternalProjects rather than just logging to files OFF 
> [default] [ARROW_VERBOSE_THIRDPARTY_BUILD]
> -- Rely on boost shared libraries where relevant ON [default] 
> [ARROW_BOOST_USE_SHARED]
> -- Use vendored Boost instead of existing Boost. Note that this requires 
> linking Boost statically. Deprecated. Use BOOST_SOURCE=BUNDLED instead. 
>  OFF [default] [ARROW_BOOST_VENDORED]
> -- Rely on Protocol Buffers shared libraries where relevant ON [default] 
> [ARROW_PROTOBUF_USE_SHARED]
> -- Rely on GFlags shared libraries where relevant ON [default] 
> [ARROW_GFLAGS_USE_SHARED]
> -- Build with backtrace support ON [default] [ARROW_WITH_BACKTRACE]
> -- Build libraries with glog support for pluggable logging ON [default] 
> [ARROW_USE_GLOG]
> -- Build with Brotli compression ON [default] [ARROW_WITH_BROTLI]
> -- Build with BZ2 compression OFF [default] [ARROW_WITH_BZ2]
> -- Build with lz4 compression ON [default] [ARROW_WITH_LZ4]
> -- Build with Snappy compression ON [default] [ARROW_WITH_SNAPPY]
> -- Build with zlib compression ON [default] [ARROW_WITH_ZLIB]
> -- Build with zstd compression ON [default] [ARROW_WITH_ZSTD]
> -- 
> -- Parquet options:
> -- Depend only on Thirdparty headers to build libparquet. Always OFF if 
> building binaries 
>  OFF [default] [PARQUET_MINIMAL_DEPENDENCY]
> -- Build the Parquet executable CLI tools. Requires static libraries to be 
> built. 
>  OFF [default] [PARQUET_BUILD_EXECUTABLES]
> -- Build the Parquet examples. Requires static libraries to be built. ON 
> [PARQUET_BUILD_EXAMPLES]
> -- Build support for encryption. Fail if OpenSSL is not found OFF [default] 
> [PARQUET_REQUIRE_ENCRYPTION]
> -- 
> -- Gandiva options:
> -- Build the Gandiva JNI wrappers OFF [default] [ARROW_GANDIVA_JAVA]
> -- Include -static-libstdc++ -static-libgcc when linking with Gandiva static 
> libraries 
>  OFF [default] [ARROW_GANDIVA_STATIC_LIBSTDCPP]
> -- Compiler flags to append when pre-compiling Gandiva operations "" 
> [default] [ARROW_GANDIVA_PC_CXX_FLAGS]
> -- 
> -- Advanced developer options:
> -- Compile with extra error context (line numbers, code) OFF [default] 
> [ARROW_EXTRA_ERROR_CONTEXT]
> -- If enabled install ONLY targets that have already been built. Please be 
> advised that if this is enabled 'install' will fail silently on components 
> that have not been built 
>  OFF [default] [ARROW_OPTIONAL_INSTALL]
> -- Outputting build configuration summary to 
> /home/hosanez/scratch/apache-arrow-0.15.1/cpp/release/cmake_summary.json
> -- Configuring done
> -- Generating done
> -- Build files have been written to: 
> /home/hosanez/scratch/apache-arrow-0.15.1/cpp/release
> {noformat}
>  
> *Here is the code I am trying to build:*
> {noformat}
> #include <arrow/table.h> 
> #include <arrow/type_traits.h> 
> #include <arrow/array/builder_binary.h> 
> #include <arrow/array/builder_primitive.h> 
> #include <parquet/exception.h> 
> std::shared_ptr<arrow::Table> generate_table() { 
> arrow::Int64Builder i64builder; 
> PARQUET_THROW_NOT_OK(i64builder.AppendValues(\{1, 2, 3, 4, 5})); 
> std::shared_ptr<arrow::Array> i64array; 
> PARQUET_THROW_NOT_OK(i64builder.Finish(&i64array)); 
> arrow::StringBuilder strbuilder; 
> PARQUET_THROW_NOT_OK(strbuilder.Append("some")); 
> PARQUET_THROW_NOT_OK(strbuilder.Append("string")); 
> PARQUET_THROW_NOT_OK(strbuilder.Append("content")); 
> PARQUET_THROW_NOT_OK(strbuilder.Append("in")); 
> PARQUET_THROW_NOT_OK(strbuilder.Append("rows")); 
> std::shared_ptr<arrow::Array> strarray; 
> PARQUET_THROW_NOT_OK(strbuilder.Finish(&strarray)); 
> std::shared_ptr<arrow::Schema> schema = arrow::schema( 
>   {arrow::field("int", arrow::int64()), arrow::field("str", arrow::utf8())}); 
>   return arrow::Table::Make(schema, {i64array, strarray}); 
> } 
> int main(int argc, char** argv){ 
>   std::shared_ptr<arrow::Table> table = generate_table(); 
> }
> {noformat}
> *Here is the build command and output. Please note that I have installed it 
> to a custom location and don't have any other conflicting installations.*
> {noformat}
> $ g++ -std=gnu++11 -I /home/hosanez/lib/include -L 
> /home/hosanez/lib/lib/libarrow.so -L -larrow main.cpp
> /tmp/ccWYIDP3.o: In function `generate_table()':
> main.cpp:(.text+0x1cd): undefined reference to `arrow::default_memory_pool()'
> main.cpp:(.text+0x2cd): undefined reference to 
> `arrow::Status::ToString[abi:cxx11]() const'
> main.cpp:(.text+0x3a7): undefined reference to 
> `arrow::ArrayBuilder::Finish(std::shared_ptr<arrow::Array>*)'
> main.cpp:(.text+0x3fc): undefined reference to 
> `arrow::Status::ToString[abi:cxx11]() const'
> main.cpp:(.text+0x53f): undefined reference to 
> `arrow::Status::ToString[abi:cxx11]() const'
> main.cpp:(.text+0x673): undefined reference to 
> `arrow::Status::ToString[abi:cxx11]() const'
> main.cpp:(.text+0x7a7): undefined reference to 
> `arrow::Status::ToString[abi:cxx11]() const'
> main.cpp:(.text+0x8db): undefined reference to 
> `arrow::Status::ToString[abi:cxx11]() const'
> /tmp/ccWYIDP3.o:main.cpp:(.text+0xa0f): more undefined references to 
> `arrow::Status::ToString[abi:cxx11]() const' follow
> /tmp/ccWYIDP3.o: In function `generate_table()':
> main.cpp:(.text+0xae9): undefined reference to 
> `arrow::ArrayBuilder::Finish(std::shared_ptr<arrow::Array>*)'
> main.cpp:(.text+0xb3e): undefined reference to 
> `arrow::Status::ToString[abi:cxx11]() const'
> main.cpp:(.text+0xc19): undefined reference to `arrow::int64()'
> main.cpp:(.text+0xc6f): undefined reference to 
> `arrow::field(std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > const&, std::shared_ptr<arrow::DataType> const&, bool, 
> std::shared_ptr<arrow::KeyValueMetadata const> const&)'
> main.cpp:(.text+0xc92): undefined reference to `arrow::utf8()'
> main.cpp:(.text+0xce8): undefined reference to 
> `arrow::field(std::__cxx11::basic_string<char, std::char_traits<char>, 
> std::allocator<char> > const&, std::shared_ptr<arrow::DataType> const&, bool, 
> std::shared_ptr<arrow::KeyValueMetadata const> const&)'
> main.cpp:(.text+0xd52): undefined reference to 
> `arrow::schema(std::vector<std::shared_ptr<arrow::Field>, 
> std::allocator<std::shared_ptr<arrow::Field> > >&&, 
> std::shared_ptr<arrow::KeyValueMetadata const> const&)'
> main.cpp:(.text+0xec0): undefined reference to 
> `arrow::Table::Make(std::shared_ptr<arrow::Schema> const&, 
> std::vector<std::shared_ptr<arrow::Array>, 
> std::allocator<std::shared_ptr<arrow::Array> > > const&, long)'
> /tmp/ccWYIDP3.o: In function `arrow::Buffer::ZeroPadding()':
> main.cpp:(.text._ZN5arrow6Buffer11ZeroPaddingEv[_ZN5arrow6Buffer11ZeroPaddingEv]+0x14):
>  undefined reference to `arrow::Buffer::CheckMutable() const'
> /tmp/ccWYIDP3.o: In function `arrow::Buffer::mutable_data()':
> main.cpp:(.text._ZN5arrow6Buffer12mutable_dataEv[_ZN5arrow6Buffer12mutable_dataEv]+0x14):
>  undefined reference to `arrow::Buffer::CheckMutable() const'
> /tmp/ccWYIDP3.o: In function 
> `arrow::TypeTraits<arrow::Int64Type>::type_singleton()':
> main.cpp:(.text._ZN5arrow10TypeTraitsINS_9Int64TypeEE14type_singletonEv[_ZN5arrow10TypeTraitsINS_9Int64TypeEE14type_singletonEv]+0x23):
>  undefined reference to `arrow::int64()'
> /tmp/ccWYIDP3.o: In function `arrow::BufferBuilder::Resize(long, bool)':
> main.cpp:(.text._ZN5arrow13BufferBuilder6ResizeElb[_ZN5arrow13BufferBuilder6ResizeElb]+0x6e):
>  undefined reference to `arrow::AllocateResizableBuffer(arrow::MemoryPool*, 
> long, std::shared_ptr<arrow::ResizableBuffer>*)'
> /tmp/ccWYIDP3.o: In function 
> `arrow::BufferBuilder::Finish(std::shared_ptr<arrow::Buffer>*, bool)':
> main.cpp:(.text._ZN5arrow13BufferBuilder6FinishEPSt10shared_ptrINS_6BufferEEb[_ZN5arrow13BufferBuilder6FinishEPSt10shared_ptrINS_6BufferEEb]+0xfb):
>  undefined reference to `arrow::AllocateBuffer(arrow::MemoryPool*, long, 
> std::shared_ptr<arrow::Buffer>*)'
> /tmp/ccWYIDP3.o: In function 
> `arrow::ArrayBuilder::ArrayBuilder(arrow::MemoryPool*)':
> main.cpp:(.text._ZN5arrow12ArrayBuilderC2EPNS_10MemoryPoolE[_ZN5arrow12ArrayBuilderC5EPNS_10MemoryPoolE]+0x11):
>  undefined reference to `vtable for arrow::ArrayBuilder'
> /tmp/ccWYIDP3.o: In function 
> `arrow::ArrayBuilder::UnsafeAppendToBitmap(unsigned char const*, long)':
> main.cpp:(.text._ZN5arrow12ArrayBuilder20UnsafeAppendToBitmapEPKhl[_ZN5arrow12ArrayBuilder20UnsafeAppendToBitmapEPKhl]+0x2a):
>  undefined reference to `arrow::ArrayBuilder::UnsafeSetNotNull(long)'
> /tmp/ccWYIDP3.o: In function `arrow::ArrayBuilder::UnsafeAppendToBitmap(long, 
> bool)':
> main.cpp:(.text._ZN5arrow12ArrayBuilder20UnsafeAppendToBitmapElb[_ZN5arrow12ArrayBuilder20UnsafeAppendToBitmapElb]+0x2a):
>  undefined reference to `arrow::ArrayBuilder::UnsafeSetNotNull(long)'
> main.cpp:(.text._ZN5arrow12ArrayBuilder20UnsafeAppendToBitmapElb[_ZN5arrow12ArrayBuilder20UnsafeAppendToBitmapElb]+0x3f):
>  undefined reference to `arrow::ArrayBuilder::UnsafeSetNull(long)'
> /tmp/ccWYIDP3.o: In function `arrow::BinaryBuilder::type() const':
> main.cpp:(.text._ZNK5arrow13BinaryBuilder4typeEv[_ZNK5arrow13BinaryBuilder4typeEv]+0x27):
>  undefined reference to `arrow::binary()'
> /tmp/ccWYIDP3.o: In function `arrow::StringBuilder::type() const':
> main.cpp:(.text._ZNK5arrow13StringBuilder4typeEv[_ZNK5arrow13StringBuilder4typeEv]+0x27):
>  undefined reference to `arrow::utf8()'
> /tmp/ccWYIDP3.o: In function `arrow::ArrayBuilder::~ArrayBuilder()':
> main.cpp:(.text._ZN5arrow12ArrayBuilderD2Ev[_ZN5arrow12ArrayBuilderD5Ev]+0xd):
>  undefined reference to `vtable for arrow::ArrayBuilder'
> /tmp/ccWYIDP3.o: In function `arrow::BinaryBuilder::BinaryBuilder()':
> main.cpp:(.text._ZN5arrow13BinaryBuilderC2Ev[_ZN5arrow13BinaryBuilderC5Ev]+0xd):
>  undefined reference to `arrow::default_memory_pool()'
> /tmp/ccWYIDP3.o: In function `arrow::Status arrow::Status::Invalid<char const 
> (&) [33]>(char const (&) [33])':
> main.cpp:(.text._ZN5arrow6Status7InvalidIJRA33_KcEEES0_DpOT_[_ZN5arrow6Status7InvalidIJRA33_KcEEES0_DpOT_]+0x4f):
>  undefined reference to `arrow::Status::Status(arrow::StatusCode, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&)'
> /tmp/ccWYIDP3.o: In function `arrow::Status arrow::Status::Invalid<char const 
> (&) [23]>(char const (&) [23])':
> main.cpp:(.text._ZN5arrow6Status7InvalidIJRA23_KcEEES0_DpOT_[_ZN5arrow6Status7InvalidIJRA23_KcEEES0_DpOT_]+0x4f):
>  undefined reference to `arrow::Status::Status(arrow::StatusCode, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&)'
> /tmp/ccWYIDP3.o: In function 
> `arrow::NumericBuilder<arrow::Int64Type>::NumericBuilder<arrow::Int64Type>(std::enable_if<arrow::TypeTraits<arrow::Int64Type>::is_parameter_free,
>  arrow::MemoryPool*>::type)':
> main.cpp:(.text._ZN5arrow14NumericBuilderINS_9Int64TypeEEC2IS1_EENSt9enable_ifIXsrNS_10TypeTraitsIT_EE17is_parameter_freeEPNS_10MemoryPoolEE4typeE[_ZN5arrow14NumericBuilderINS_9Int64TypeEEC5IS1_EENSt9enable_ifIXsrNS_10TypeTraitsIT_EE17is_parameter_freeEPNS_10MemoryPoolEE4typeE]+0x50):
>  undefined reference to `arrow::default_memory_pool()'
> /tmp/ccWYIDP3.o: In function `std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > 
> arrow::util::StringBuilder<char const (&) [33]>(char const (&) [33])':
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA33_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA33_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x28):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::StringStreamWrapper()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA33_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA33_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x61):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::str[abi:cxx11]()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA33_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA33_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x6e):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::~StringStreamWrapper()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA33_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA33_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x93):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::~StringStreamWrapper()'
> /tmp/ccWYIDP3.o: In function `std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > 
> arrow::util::StringBuilder<char const (&) [23]>(char const (&) [23])':
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA23_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA23_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x28):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::StringStreamWrapper()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA23_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA23_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x61):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::str[abi:cxx11]()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA23_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA23_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x6e):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::~StringStreamWrapper()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA23_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA23_KcEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x93):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::~StringStreamWrapper()'
> /tmp/ccWYIDP3.o: In function `arrow::Status arrow::Status::CapacityError<char 
> const (&) [32], long, char const (&) [14], long&>(char const (&) [32], 
> long&&, char const (&) [14], long&)':
> main.cpp:(.text._ZN5arrow6Status13CapacityErrorIJRA32_KclRA14_S2_RlEEES0_DpOT_[_ZN5arrow6Status13CapacityErrorIJRA32_KclRA14_S2_RlEEES0_DpOT_]+0x92):
>  undefined reference to `arrow::Status::Status(arrow::StatusCode, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&)'
> /tmp/ccWYIDP3.o: In function `std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > 
> arrow::util::StringBuilder<char const (&) [32], long, char const (&) [14], 
> long&>(char const (&) [32], long&&, char const (&) [14], long&)':
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA32_KclRA14_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA32_KclRA14_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x3a):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::StringStreamWrapper()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA32_KclRA14_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA32_KclRA14_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0xa9):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::str[abi:cxx11]()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA32_KclRA14_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA32_KclRA14_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0xb6):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::~StringStreamWrapper()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA32_KclRA14_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA32_KclRA14_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0xdb):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::~StringStreamWrapper()'
> /tmp/ccWYIDP3.o:(.rodata._ZTIN5arrow14NumericBuilderINS_9Int64TypeEEE[_ZTIN5arrow14NumericBuilderINS_9Int64TypeEEE]+0x10):
>  undefined reference to `typeinfo for arrow::ArrayBuilder'
> /tmp/ccWYIDP3.o:(.rodata._ZTIN5arrow17BaseBinaryBuilderINS_10BinaryTypeEEE[_ZTIN5arrow17BaseBinaryBuilderINS_10BinaryTypeEEE]+0x10):
>  undefined reference to `typeinfo for arrow::ArrayBuilder'
> /tmp/ccWYIDP3.o: In function 
> `arrow::NumericBuilder<arrow::Int64Type>::Resize(long)':
> main.cpp:(.text._ZN5arrow14NumericBuilderINS_9Int64TypeEE6ResizeEl[_ZN5arrow14NumericBuilderINS_9Int64TypeEE6ResizeEl]+0x128):
>  undefined reference to `arrow::ArrayBuilder::Resize(long)'
> /tmp/ccWYIDP3.o: In function 
> `arrow::NumericBuilder<arrow::Int64Type>::AppendNulls(long)':
> main.cpp:(.text._ZN5arrow14NumericBuilderINS_9Int64TypeEE11AppendNullsEl[_ZN5arrow14NumericBuilderINS_9Int64TypeEE11AppendNullsEl]+0xb6):
>  undefined reference to `arrow::ArrayBuilder::UnsafeSetNull(long)'
> /tmp/ccWYIDP3.o: In function 
> `arrow::NumericBuilder<arrow::Int64Type>::FinishInternal(std::shared_ptr<arrow::ArrayData>*)':
> main.cpp:(.text._ZN5arrow14NumericBuilderINS_9Int64TypeEE14FinishInternalEPSt10shared_ptrINS_9ArrayDataEE[_ZN5arrow14NumericBuilderINS_9Int64TypeEE14FinishInternalEPSt10shared_ptrINS_9ArrayDataEE]+0x226):
>  undefined reference to 
> `arrow::ArrayData::Make(std::shared_ptr<arrow::DataType> const&, long, 
> std::vector<std::shared_ptr<arrow::Buffer>, 
> std::allocator<std::shared_ptr<arrow::Buffer> > >&&, long, long)'
> /tmp/ccWYIDP3.o: In function 
> `arrow::BaseBinaryBuilder<arrow::BinaryType>::Resize(long)':
> main.cpp:(.text._ZN5arrow17BaseBinaryBuilderINS_10BinaryTypeEE6ResizeEl[_ZN5arrow17BaseBinaryBuilderINS_10BinaryTypeEE6ResizeEl]+0x159):
>  undefined reference to `arrow::ArrayBuilder::Resize(long)'
> /tmp/ccWYIDP3.o: In function 
> `arrow::BaseBinaryBuilder<arrow::BinaryType>::Reset()':
> main.cpp:(.text._ZN5arrow17BaseBinaryBuilderINS_10BinaryTypeEE5ResetEv[_ZN5arrow17BaseBinaryBuilderINS_10BinaryTypeEE5ResetEv]+0x14):
>  undefined reference to `arrow::ArrayBuilder::Reset()'
> /tmp/ccWYIDP3.o: In function 
> `arrow::BaseBinaryBuilder<arrow::BinaryType>::FinishInternal(std::shared_ptr<arrow::ArrayData>*)':
> main.cpp:(.text._ZN5arrow17BaseBinaryBuilderINS_10BinaryTypeEE14FinishInternalEPSt10shared_ptrINS_9ArrayDataEE[_ZN5arrow17BaseBinaryBuilderINS_10BinaryTypeEE14FinishInternalEPSt10shared_ptrINS_9ArrayDataEE]+0x33d):
>  undefined reference to 
> `arrow::ArrayData::Make(std::shared_ptr<arrow::DataType> const&, long, 
> std::vector<std::shared_ptr<arrow::Buffer>, 
> std::allocator<std::shared_ptr<arrow::Buffer> > >&&, long, long)'
> /tmp/ccWYIDP3.o: In function `arrow::Status arrow::Status::CapacityError<char 
> const (&) [50], long, char const (&) [22], long&>(char const (&) [50], 
> long&&, char const (&) [22], long&)':
> main.cpp:(.text._ZN5arrow6Status13CapacityErrorIJRA50_KclRA22_S2_RlEEES0_DpOT_[_ZN5arrow6Status13CapacityErrorIJRA50_KclRA22_S2_RlEEES0_DpOT_]+0x92):
>  undefined reference to `arrow::Status::Status(arrow::StatusCode, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&)'
> /tmp/ccWYIDP3.o: In function `std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > 
> arrow::util::StringBuilder<char const (&) [50], long, char const (&) [22], 
> long&>(char const (&) [50], long&&, char const (&) [22], long&)':
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA50_KclRA22_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA50_KclRA22_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0x3a):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::StringStreamWrapper()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA50_KclRA22_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA50_KclRA22_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0xa9):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::str[abi:cxx11]()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA50_KclRA22_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA50_KclRA22_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0xb6):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::~StringStreamWrapper()'
> main.cpp:(.text._ZN5arrow4util13StringBuilderIJRA50_KclRA22_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_[_ZN5arrow4util13StringBuilderIJRA50_KclRA22_S2_RlEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEDpOT_]+0xdb):
>  undefined reference to 
> `arrow::util::detail::StringStreamWrapper::~StringStreamWrapper()'
> collect2: error: ld returned 1 exit status
> {noformat}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to