An industrial-grade C++ implementation of RAFT consensus algorithm based on brpc, widely used inside Baidu to build highly-available distributed systems.
Apache License 2.0
3.95k
stars
881
forks
source link
编译报错 "error: macro "__has_attribute" requires an identifier" #400
$ mkdir build && cd build && cmake .. && make
[ 2%] Building CXX object src/CMakeFiles/OBJ_LIB.dir/braft/ballot.cpp.o
In file included from /usr/include/features.h:486,
from /usr/include/x86_64-linux-gnu/c++/11/bits/os_defines.h:39,
from /usr/include/x86_64-linux-gnu/c++/11/bits/c++config.h:586,
from /usr/include/c++/11/string:38,
from /home/ubuntu/third_party/braft/src/braft/configuration.h:22,
from /home/ubuntu/third_party/braft/src/braft/ballot.h:20,
from /home/ubuntu/third_party/braft/src/braft/ballot.cpp:17:
/usr/include/x86_64-linux-gnu/sys/cdefs.h:314:60: error: macro "__has_attribute" requires an identifier
314 | #if __GNUC_PREREQ (2,5) || __glibc_has_attribute (__const__)
| ^
cc1plus: note: unrecognized command-line option ‘-Wno-reserved-user-defined-literal’ may have been intended to silence earlier diagnostics
make[2]: *** [src/CMakeFiles/OBJ_LIB.dir/build.make:76: src/CMakeFiles/OBJ_LIB.dir/braft/ballot.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:120: src/CMakeFiles/OBJ_LIB.dir/all] Error 2
make: *** [Makefile:156: all] Error 2
OS: Ubuntu Server 22.04 LTS Complier: gcc 11.3.0, g++ 11.3.0 brpc: 1.5.0