Oh, i see, i was using `apache-parquet-cpp-1.3.0`,,, which by default gets
arrow 97f9029ce835dfc2655ca91b9820a2e6aed89107

I'm all good now, will switch to use 1.3.1 or later,

Thanks for pointing this out,



On 10 January 2018 at 07:01, Deepak Majeti <[email protected]> wrote:

> Looks like this dependency requirement is already fixed on arrow master
>
> https://github.com/apache/arrow/blob/master/cpp/src/arrow/io/file.cc#L125
>
>
> On Tue, Jan 9, 2018 at 4:04 PM, ALeX Wang <[email protected]> wrote:
> > So, I ran `c++ -E` and confirmed that the `<boost/filesystem.hpp>` is
> > indeed included here in arrow:
> >
> > https://github.com/apache/arrow/blob/97f9029ce835dfc2655ca91b9820a2
> e6aed89107/cpp/src/arrow/io/file.cc#L110-L111
> >
> > And it subsequently include `<boost/filesystem/path.hpp>` which refers to
> > the `codecvt`... ... ...
> >
> > SO, seems to me that there is a missing dependency to the
> > `libboost_filesystem.a`,
> >
> > Thanks,
> >
> > On 7 January 2018 at 20:58, Deepak Majeti <[email protected]>
> wrote:
> >
> >> For static linking, certain boost libraries are transitively needed by
> >> parquet-cpp due to its dependency on Arrow.
> >>
> >> Below is a link to the arrow version your parquet-cpp branch is linking
> >> against
> >> https://github.com/apache/arrow/blob/97f9029ce835dfc2655ca91b9820a2
> >> e6aed89107/cpp/src/arrow/io/file.cc
> >>
> >> I see that "codecvt" header and symbols are included only if "_MSC_VER"
> is
> >> defined.
> >>
> >> You should not be seeing the "undefined reference to
> >> `boost::filesystem::path::codecvt()" on Centos7 with GNU compiler.
> >>
> >> On Sun, Jan 7, 2018 at 4:26 PM, ALeX Wang <[email protected]> wrote:
> >>
> >> > My environment is Centos7,
> >> >
> >> > I do not follow the question, since when i run `cmake` it says the
> >> version
> >> > arrow to use,,, e.g.
> >> >
> >> > ```
> >> > -- Building Apache Arrow from commit:
> >> > 97f9029ce835dfc2655ca91b9820a2e6aed89107
> >> > -- Build Type: RELEASE
> >> > -- Compiler id: GNU
> >> > Selected compiler gcc 4.8.5
> >> > -- Found cpplint executable at /opt/parquet-cpp/build-
> support/cpplint.py
> >> > ```
> >> >
> >> > Again, I was referring to the environment variables setting in the
> >> > `ci/travis_script_static.sh`, and set my env vars like below:
> >> >
> >> > ```
> >> >   190  export ARROW_EP=/opt/parquet-cpp/arrow_ep-prefix/src/arrow_ep-
> >> build
> >> >   191  export BROTLI_EP=$ARROW_EP/brotli_ep/src/brotli_ep-install/lib
> >> >   193  export
> >> > SNAPPY_STATIC_LIB=$ARROW_EP/snappy_ep/src/snappy_ep-
> >> > install/lib/libsnappy.a
> >> >   194  export BROTLI_STATIC_LIB_ENC=$BROTLI_EP/libbrotlienc.a
> >> >   195  export BROTLI_STATIC_LIB_DEC=$BROTLI_EP/libbrotlidec.a
> >> >   196  export BROTLI_STATIC_LIB_COMMON=$BROTLI_EP/libbrotlicommon.a
> >> >   197  export
> >> > ZLIB_STATIC_LIB=$ARROW_EP/zlib_ep/src/zlib_ep-install/lib/libz.a
> >> > ```
> >> >
> >> > And then i ran `cmake`...
> >> >
> >> >
> >> > Thanks,
> >> >
> >> > On 7 January 2018 at 03:56, Deepak Majeti <[email protected]>
> >> wrote:
> >> >
> >> > > What is the Arrow version of your setup? Can you verify if you see
> the
> >> > same
> >> > > issue on parquet-cpp master?
> >> > > It is possible we are missing the boost filesystem library
> dependency
> >> for
> >> > > the static build with MSVC.
> >> > >
> >> > > On Sat, Jan 6, 2018 at 10:33 AM, ALeX Wang <[email protected]>
> wrote:
> >> > >
> >> > > > Okay, my following change makes it working,,, could anyone please
> >> help
> >> > > > confirm,
> >> > > >
> >> > > > ```
> >> > > > diff --git a/CMakeLists.txt b/CMakeLists.txt
> >> > > > index fef0cab..25defd6 100644
> >> > > > --- a/CMakeLists.txt
> >> > > > +++ b/CMakeLists.txt
> >> > > > @@ -500,7 +500,8 @@ if (PARQUET_BOOST_USE_SHARED)
> >> > > >  else()
> >> > > >    set(BOOST_LINK_LIBS
> >> > > >      boost_static_regex
> >> > > > -    boost_static_system)
> >> > > > +    boost_static_system
> >> > > > +    boost_static_filesystem)
> >> > > >  endif()
> >> > > >
> >> > > >  #############################################################
> >> > > > diff --git a/cmake_modules/ThirdpartyToolchain.cmake
> >> > > > b/cmake_modules/ThirdpartyToolchain.cmake
> >> > > > index 1221765..d19c4eb 100644
> >> > > > --- a/cmake_modules/ThirdpartyToolchain.cmake
> >> > > > +++ b/cmake_modules/ThirdpartyToolchain.cmake
> >> > > > @@ -81,13 +81,15 @@ if (PARQUET_BOOST_USE_SHARED)
> >> > > >  else()
> >> > > >    # Find static Boost libraries.
> >> > > >    set(Boost_USE_STATIC_LIBS ON)
> >> > > > -  find_package(Boost COMPONENTS regex system REQUIRED)
> >> > > > +  find_package(Boost COMPONENTS regex system filesystem REQUIRED)
> >> > > >    if ("${UPPERCASE_BUILD_TYPE}" STREQUAL "DEBUG")
> >> > > >      set(BOOST_STATIC_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_DEBUG})
> >> > > >      set(BOOST_STATIC_SYSTEM_LIBRARY
> ${Boost_SYSTEM_LIBRARY_DEBUG})
> >> > > > +    set(BOOST_STATIC_FILESYSTEM_LIBRARY
> ${Boost_FILESYSTEM_LIBRARY_
> >> > > > DEBUG})
> >> > > >    else()
> >> > > >      set(BOOST_STATIC_REGEX_LIBRARY ${Boost_REGEX_LIBRARY_RELEASE}
> )
> >> > > >      set(BOOST_STATIC_SYSTEM_LIBRARY ${Boost_SYSTEM_LIBRARY_
> >> RELEASE})
> >> > > > +    set(BOOST_STATIC_FILESYSTEM_LIBRARY
> >> > > > ${Boost_FILESYSTEM_LIBRARY_RELEASE})
> >> > > >    endif()
> >> > > >  endif()
> >> > > >
> >> > > > @@ -115,6 +117,8 @@ else()
> >> > > >    set_target_properties(boost_static_regex PROPERTIES
> >> > IMPORTED_LOCATION
> >> > > > ${BOOST_STATIC_REGEX_LIBRARY})
> >> > > >    add_library(boost_static_system STATIC IMPORTED)
> >> > > >    set_target_properties(boost_static_system PROPERTIES
> >> > > IMPORTED_LOCATION
> >> > > > ${BOOST_STATIC_SYSTEM_LIBRARY})
> >> > > > +  add_library(boost_static_filesystem STATIC IMPORTED)
> >> > > > +  set_target_properties(boost_static_filesystem PROPERTIES
> >> > > > IMPORTED_LOCATION ${BOOST_STATIC_FILESYSTEM_LIBRARY})
> >> > > >  endif()
> >> > > >
> >> > > >  include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
> >> > > > ```
> >> > > >
> >> > > > On 5 January 2018 at 20:29, ALeX Wang <[email protected]> wrote:
> >> > > >
> >> > > > > Also, i'm building from
> >> > > > >
> >> > > > > ```
> >> > > > > commit 18ca3922e688a3a730d693ff8f2cfbfd65da8c46
> >> > > > > Author: Uwe L. Korn <[email protected]>
> >> > > > > Date:   Sun Sep 17 13:55:43 2017 -0400
> >> > > > >
> >> > > > >     PARQUET-1094: Add benchmark for boolean Arrow column I/O
> >> > > > >
> >> > > > >     Author: Uwe L. Korn <[email protected]>
> >> > > > >
> >> > > > >     Closes #391 from xhochy/PARQUET-1094 and squashes the
> following
> >> > > > > commits:
> >> > > > >
> >> > > > >     089bb3c [Uwe L. Korn] PARQUET-1094: Add benchmark for
> boolean
> >> > Arrow
> >> > > > > column I/O
> >> > > > > ```
> >> > > > >
> >> > > > > On 5 January 2018 at 20:27, ALeX Wang <[email protected]>
> wrote:
> >> > > > >
> >> > > > >> Hi,
> >> > > > >>
> >> > > > >> I'm referring to the https://github.com/apache/
> >> > > > >> parquet-cpp/blob/master/ci/travis_script_static.sh
> >> > > > >> and try to build static library,
> >> > > > >>
> >> > > > >> My cmake cmdline looks like:
> >> > > > >> ```
> >> > > > >> cmake3 -DCMAKE_BUILD_TYPE=Release -DPARQUET_BUILD_EXAMPLES=OFF
> >> > > > >> -DPARQUET_BUILD_TESTS=OFF  -DPARQUET_ARROW_LINKAGE="static"
> >> > > > >>  -DPARQUET_BUILD_SHARED=OFF -DPARQUET_BOOST_USE_SHARED=OFF  .
> >> > > > >> ```
> >> > > > >>
> >> > > > >> However, the compilation failed with:
> >> > > > >> ```
> >> > > > >> [ 90%] Linking CXX executable ../build/release/parquet-scan
> >> > > > >> ../build/release/libarrow.a(file.cc.o): In function
> >> > > > >> `arrow::io::FileOutputStream::Open(std::string const&, bool,
> >> > > > >> std::shared_ptr<arrow::io::FileOutputStream>*)':
> >> > > > >> file.cc:(.text+0x2f1f): undefined reference to
> >> > > > >> `boost::filesystem::path::codecvt()'
> >> > > > >> ../build/release/libarrow.a(file.cc.o): In function
> >> > > > >> `arrow::io::ReadableFile::Open(std::string const&,
> >> > > arrow::MemoryPool*,
> >> > > > >> std::shared_ptr<arrow::io::ReadableFile>*)':
> >> > > > >> file.cc:(.text+0x33d0): undefined reference to
> >> > > > >> `boost::filesystem::path::codecvt()'
> >> > > > >> ../build/release/libarrow.a(file.cc.o): In function
> >> > > > >> `arrow::io::ReadableFile::Open(std::string const&,
> >> > > > >> std::shared_ptr<arrow::io::ReadableFile>*)':
> >> > > > >> file.cc:(.text+0x3865): undefined reference to
> >> > > > >> `boost::filesystem::path::codecvt()'
> >> > > > >> ../build/release/libarrow.a(file.cc.o): In function
> >> > > > >> `arrow::io::MemoryMappedFile::MemoryMap::Open(std::string
> const&,
> >> > > > >> arrow::io::FileMode::type)':
> >> > > > >> file.cc:(.text._ZN5arrow2io16MemoryMappedFile9MemoryMap4Open
> >> > > > >> ERKSsNS0_8FileMode4typeE[_ZN5arrow2io16MemoryMappedFile9Memo
> >> > > > >> ryMap4OpenERKSsNS0_8FileMode4typeE]+0xba): undefined
> reference to
> >> > > > >> `boost::filesystem::path::codecvt()'
> >> > > > >> file.cc:(.text._ZN5arrow2io16MemoryMappedFile9MemoryMap4Open
> >> > > > >> ERKSsNS0_8FileMode4typeE[_ZN5arrow2io16MemoryMappedFile9Memo
> >> > > > >> ryMap4OpenERKSsNS0_8FileMode4typeE]+0x186): undefined
> reference
> >> to
> >> > > > >> `boost::filesystem::path::codecvt()'
> >> > > > >> collect2: error: ld returned 1 exit status
> >> > > > >> ```
> >> > > > >>
> >> > > > >> Any idea where I did wrong?
> >> > > > >>
> >> > > > >> Thanks,
> >> > > > >> --
> >> > > > >> Alex Wang,
> >> > > > >> Open vSwitch developer
> >> > > > >>
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > --
> >> > > > > Alex Wang,
> >> > > > > Open vSwitch developer
> >> > > > >
> >> > > >
> >> > > >
> >> > > >
> >> > > > --
> >> > > > Alex Wang,
> >> > > > Open vSwitch developer
> >> > > >
> >> > >
> >> > >
> >> > >
> >> > > --
> >> > > regards,
> >> > > Deepak Majeti
> >> > >
> >> >
> >> >
> >> >
> >> > --
> >> > Alex Wang,
> >> > Open vSwitch developer
> >> >
> >>
> >>
> >>
> >> --
> >> regards,
> >> Deepak Majeti
> >>
> >
> >
> >
> > --
> > Alex Wang,
> > Open vSwitch developer
>
>
>
> --
> regards,
> Deepak Majeti
>



-- 
Alex Wang,
Open vSwitch developer

Reply via email to