Antoine Pitrou created ARROW-4052:
-------------------------------------
Summary: [C++] Linker errors with glog and gflags
Key: ARROW-4052
URL: https://issues.apache.org/jira/browse/ARROW-4052
Project: Apache Arrow
Issue Type: Bug
Components: C++
Reporter: Antoine Pitrou
This is very recent, probably one of Saturday's or Sunday's merges:
{code}
[176/293] Linking CXX executable debug/plasma_store_server
FAILED: debug/plasma_store_server
: && /usr/bin/ccache /usr/bin/g++-7 -Wno-noexcept-type -fuse-ld=gold -ggdb
-O0 -Wall -msse4.2 -fdiagnostics-color=always -Wextra -Wunused-result
-Wno-unused-parameter -Wno-implicit-fallthrough -Wconversion
-D_GLIBCXX_USE_CXX11_ABI=1 -D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=200809L -fPIC
-g -rdynamic src/plasma/CMakeFiles/plasma_store_server.dir/store.cc.o -o
debug/plasma_store_server
-Wl,-rpath,/home/antoine/miniconda3/envs/pyarrow/lib: -lrt debug/libplasma.a
debug/libarrow_cuda.a debug/libarrow.a -Wl,-Bstatic -lcudart_static
-Wl,-Bdynamic -ldl -lrt -lcuda -lrt
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a
/home/antoine/miniconda3/envs/pyarrow/lib/libzstd.a
/home/antoine/miniconda3/envs/pyarrow/lib/libz.so
/home/antoine/miniconda3/envs/pyarrow/lib/libsnappy.a
/home/antoine/miniconda3/envs/pyarrow/lib/liblz4.a
/home/antoine/miniconda3/envs/pyarrow/lib/libbrotlidec-static.a
/home/antoine/miniconda3/envs/pyarrow/lib/libbrotlienc-static.a
/home/antoine/miniconda3/envs/pyarrow/lib/libbrotlicommon-static.a
double-conversion_ep/src/double-conversion_ep/lib/libdouble-conversion.a
/home/antoine/miniconda3/envs/pyarrow/lib/libboost_system.so
/home/antoine/miniconda3/envs/pyarrow/lib/libboost_filesystem.so
/home/antoine/miniconda3/envs/pyarrow/lib/libboost_regex.so
jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a -lpthread
/usr/lib/x86_64-linux-gnu/libpthread.so
/home/antoine/miniconda3/envs/pyarrow/lib/libflatbuffers.a -lpthread && :
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char
const*, bool*, bool*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char
const*, bool*, bool*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char
const*, bool*, bool*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<bool>(char const*, char const*, char
const*, bool*, bool*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char
const*, int*, int*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char
const*, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char
const*, int*, int*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char
const*, int*, int*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<int>(char const*, char const*, char
const*, int*, int*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char
const*, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char
const*, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >*)'
/home/antoine/miniconda3/envs/pyarrow/lib/libglog.a(libglog_la-logging.o):logging.cc:function
_GLOBAL__sub_I_logging.cc: error: undefined reference to
'google::FlagRegisterer::FlagRegisterer<std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > >(char const*, char const*, char
const*, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> >*)'
collect2: error: ld returned 1 exit status
{code}
This is the build command line:
{code:bash}
cmake .. -GNinja \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$ARROW_HOME \
-DCMAKE_INSTALL_MESSAGE=LAZY \
-DARROW_CXXFLAGS="$ARROW_CXXFLAGS" \
-DARROW_CUDA=on \
-DARROW_PARQUET=on \
-DARROW_PLASMA=on \
-DARROW_PYTHON=on \
-DARROW_GANDIVA=off \
-DARROW_BUILD_TESTS=on \
nice cmake --build . --target install
{code}
These are the installed versions (through Anaconda):
{code}
gflags 2.2.2 he6710b0_0 defaults
glog 0.3.5 hf484d3e_1 defaults
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)