Sho Nakatani created ARROW-18149:
------------------------------------

             Summary: [C++] Failed to compile join_example without 
`-DARROW_CSV=ON` option
                 Key: ARROW-18149
                 URL: https://issues.apache.org/jira/browse/ARROW-18149
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
    Affects Versions: 9.0.0
         Environment: % uname -a
Linux XXX 5.4.0-70-generic #78-Ubuntu SMP Fri Mar 19 13:29:52 UTC 2021 x86_64 
x86_64 x86_64 GNU/Linux
            Reporter: Sho Nakatani


h1. Reproducing the bug
{code:java}
cd cpp
mkdir build-release
cd build-release
cmake .. \
  -DARROW_BUILD_EXAMPLES=ON \
  -DARROW_DATASET=ON \
  -DARROW_PARQUET=ON
make -j{code}
{code:java}
[ 95%] Linking CXX executable ../../release/join-example /usr/bin/ld: 
CMakeFiles/join-example.dir/join_example.cc.o: in function 
`CreateDataSetFromCSVData(bool)': join_example.cc:(.text+0x2fd): undefined 
reference to `arrow::csv::ReadOptions::Defaults()' /usr/bin/ld: 
join_example.cc:(.text+0x30d): undefined reference to 
`arrow::csv::ParseOptions::Defaults()' /usr/bin/ld: 
join_example.cc:(.text+0x322): undefined reference to 
`arrow::csv::ConvertOptions::Defaults()' /usr/bin/ld: 
join_example.cc:(.text+0x3bf): undefined reference to 
`arrow::csv::TableReader::Make(arrow::io::IOContext, 
std::shared_ptr<arrow::io::InputStream>, arrow::csv::ReadOptions const&, 
arrow::csv::ParseOptions const&, arrow::csv::ConvertOptions const&)' collect2: 
error: ld returned 1 exit status make[2]: *** 
[examples/arrow/CMakeFiles/join-example.dir/build.make:90: 
release/join-example] Error 1 make[1]: *** [CMakeFiles/Makefile2:1909: 
examples/arrow/CMakeFiles/join-example.dir/all] Error 2 make: *** 
[Makefile:141: all] Error 2
{code}
h1. Workaround

Add `-DARROW_CSV=ON` option.
{code:java}
cmake .. \
  -DARROW_BUILD_EXAMPLES=ON \
  -DARROW_DATASET=ON \
  -DARROW_PARQUET=ON \
  -DARROW_CSV=ON
make -j
{code}
h1. How to fix

Put these lines in an additional condition.

[https://github.com/apache/arrow/blob/1ae666c31356fd9cb0bc54a32943e25454874f25/cpp/examples/arrow/CMakeLists.txt#L140-L141]
{code:java}
if(ARROW_CSV)
  add_arrow_example(join_example EXTRA_LINK_LIBS ${DATASET_EXAMPLES_LINK_LIBS})
  add_dependencies(join-example parquet) 
endif(){code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to