Hi,
I’m using the master version of Arrow. In order to test my Arrow2ORC feature I
got a new copy of Arrow and tried to make it with debug on. It turns out that
one ORC dependency, libhdfspp_static.a, can not be found which caused linking
of arrow-orc-adapter-test to be impossible.
Here is my command:
cmake -DARROW_WITH_UTF8PROC=OFF -DCMAKE_BUILD_TYPE=Debug -DARROW_BUILD_TESTS=ON
-DARROW_ORC=ON -DARROW_PYTHON=ON -DORC_ROOT=/usr/local
-DOPENSSL_ROOT_DIR=/usr/local/opt/openssl ../..
Here is the error message I got:
[ 93%] Linking CXX executable ../../../../debug/arrow-orc-adapter-test
Undefined symbols for architecture x86_64:
"hdfs::FileSystem::New(hdfs::IoService*&, std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&, hdfs::Options
const&)", referenced from:
orc::HdfsFileInputStream::HdfsFileInputStream(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >) in
liborc.a(OrcHdfsFile.cc.o)
"hdfs::ConfigParser::LoadDefaultResources()", referenced from:
orc::HdfsFileInputStream::HdfsFileInputStream(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >) in
liborc.a(OrcHdfsFile.cc.o)
"hdfs::ConfigParser::ConfigParser()", referenced from:
orc::HdfsFileInputStream::HdfsFileInputStream(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >) in
liborc.a(OrcHdfsFile.cc.o)
"hdfs::ConfigParser::~ConfigParser()", referenced from:
orc::HdfsFileInputStream::HdfsFileInputStream(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >) in
liborc.a(OrcHdfsFile.cc.o)
"hdfs::URI::parse_from_string(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced
from:
…
…
"hdfs::Status::ToString() const", referenced from:
orc::HdfsFileInputStream::read(void*, unsigned long long, unsigned long
long) in liborc.a(OrcHdfsFile.cc.o)
orc::HdfsFileInputStream::HdfsFileInputStream(std::__1::basic_string<char,
std::__1::char_traits<char>, std::__1::allocator<char> >) in
liborc.a(OrcHdfsFile.cc.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [debug/arrow-orc-adapter-test] Error 1
make[1]: *** [src/arrow/adapters/orc/CMakeFiles/arrow-orc-adapter-test.dir/all]
Error 2
make: *** [all] Error 2
I would like to know whether it is impossible to have a debug build of Apache
Arrow with ORC without editing some CMakeLists files at least on macOS
Catalina. If that’s the case then we have a bug.
Thanks,
Ying