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
