-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Description
编译be时报错
In file included from /home/crc/palo/be/src/runtime/decimal_value.h:34:0,
from /home/crc/palo/be/src/udf/udf.cpp:27:
/home/crc/palo/be/src/util/hash_util.hpp:303:8: error: redefinition of ‘struct std::hash<__int128>’
struct hash<__int128> {
^~~~~~~~~~~~~~
In file included from /usr/include/c++/6/bits/basic_string.h:5643:0,
from /usr/include/c++/6/string:52,
from /usr/include/c++/6/bits/locale_classes.h:40,
from /usr/include/c++/6/bits/ios_base.h:41,
from /usr/include/c++/6/ios:42,
from /usr/include/c++/6/ostream:38,
from /usr/include/c++/6/iostream:39,
from /home/crc/palo/be/src/udf/udf.cpp:23:
/usr/include/c++/6/bits/functional_hash.h:153:3: error: previous definition of ‘struct std::hash<__int128>’
_Cxx_hashtable_define_trivial_hash(__GLIBCXX_TYPE_INT_N_0)
^
我使用的是debian stretch(当前的stable版本),gcc version 6.3.0 20170516 (Debian 6.3.0-18)
gcc -print-prog-name=cc1plus -v的结果如下
ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/6/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
/usr/include/c++/6
/usr/include/x86_64-linux-gnu/c++/6
/usr/include/c++/6/backward
/usr/lib/gcc/x86_64-linux-gnu/6/include
/usr/local/include
/usr/lib/gcc/x86_64-linux-gnu/6/include-fixed
/usr/include
End of search list.
手动把be/CMakeLists.txt中的CLANG_BASE_FLAGS设置如下
set(CLANG_BASE_FLAGS
"-I/usr/include/c++/6/"
"-I/usr/include/x86_64-linux-gnu/c++/6")