Open xiangfeidecao opened 7 months ago
我现在重新用paddleseg2.9版本,官网给的sh方式链接不上github,用git clone https://gitcode.com/gflags/gflags.git和git clone https://gitee.com/boxingcao/glog.git。安装了yaml,gflags后安装glog,cmake的日志如下:
[root@iZbp1i9nwh28kh5lxp9vhiZ glog]# cd build/
[root@iZbp1i9nwh28kh5lxp9vhiZ build]# cmake ..
-- The CXX compiler identification is GNU 4.8.5
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found GTest: /usr/local/lib64/cmake/GTest/GTestConfig.cmake (found version "1.10.0")
-- Looking for gflags namespace
-- Looking for gflags namespace - gflags
-- Found Threads: TRUE
-- Could NOT find Unwind (missing: Unwind_INCLUDE_DIR Unwind_LIBRARY Unwind_PLATFORM_LIBRARY)
-- Looking for C++ include dlfcn.h
-- Looking for C++ include dlfcn.h - found
-- Looking for C++ include execinfo.h
-- Looking for C++ include execinfo.h - found
-- Looking for C++ include glob.h
-- Looking for C++ include glob.h - found
-- Looking for C++ include inttypes.h
-- Looking for C++ include inttypes.h - found
-- Looking for C++ include memory.h
-- Looking for C++ include memory.h - found
-- Looking for C++ include pwd.h
-- Looking for C++ include pwd.h - found
-- Looking for C++ include stdint.h
-- Looking for C++ include stdint.h - found
-- Looking for C++ include strings.h
-- Looking for C++ include strings.h - found
-- Looking for C++ include sys/stat.h
-- Looking for C++ include sys/stat.h - found
-- Looking for C++ include sys/syscall.h
-- Looking for C++ include sys/syscall.h - found
-- Looking for C++ include sys/time.h
-- Looking for C++ include sys/time.h - found
-- Looking for C++ include sys/types.h
-- Looking for C++ include sys/types.h - found
-- Looking for C++ include sys/utsname.h
-- Looking for C++ include sys/utsname.h - found
-- Looking for C++ include sys/wait.h
-- Looking for C++ include sys/wait.h - found
-- Looking for C++ include syscall.h
-- Looking for C++ include syscall.h - found
-- Looking for C++ include syslog.h
-- Looking for C++ include syslog.h - found
-- Looking for C++ include ucontext.h
-- Looking for C++ include ucontext.h - found
-- Looking for C++ include unistd.h
-- Looking for C++ include unistd.h - found
-- Looking for C++ include ext/hash_map
-- Looking for C++ include ext/hash_map - found
-- Looking for C++ include ext/hash_set
-- Looking for C++ include ext/hash_set - found
-- Looking for C++ include ext/slist
-- Looking for C++ include ext/slist - found
-- Looking for C++ include tr1/unordered_map
-- Looking for C++ include tr1/unordered_map - found
-- Looking for C++ include tr1/unordered_set
-- Looking for C++ include tr1/unordered_set - found
-- Looking for C++ include unordered_map
-- Looking for C++ include unordered_map - found
-- Looking for C++ include unordered_set
-- Looking for C++ include unordered_set - found
-- Looking for C++ include stddef.h
-- Looking for C++ include stddef.h - found
-- Check size of unsigned int16
-- Check size of unsigned int16 - failed
-- Check size of u_int16_t
-- Check size of u_int16_t - done
-- Check size of uint16_t
-- Check size of uint16_t - done
-- Looking for dladdr
-- Looking for dladdr - not found
-- Looking for fcntl
-- Looking for fcntl - found
-- Looking for pread
-- Looking for pread - found
-- Looking for pwrite
-- Looking for pwrite - found
-- Looking for sigaction
-- Looking for sigaction - found
-- Looking for sigaltstack
-- Looking for sigaltstack - found
-- Performing Test HAVE_NO_DEPRECATED
-- Performing Test HAVE_NO_DEPRECATED - Success
-- Performing Test HAVE_NO_UNNAMED_TYPE_TEMPLATE_ARGS
-- Performing Test HAVE_NO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
-- Looking for snprintf
-- Looking for snprintf - found
-- Looking for UnDecorateSymbolName in dbghelp
-- Looking for UnDecorateSymbolName in dbghelp - not found
-- Performing Test HAVE_ATTRIBUTE_
-- Performing Test HAVEATTRIBUTE - Success
-- Performing Test HAVE_ATTRIBUTEVISIBILITY_DEFAULT
-- Performing Test HAVE_ATTRIBUTEVISIBILITY_DEFAULT - Success
-- Performing Test HAVE_ATTRIBUTEVISIBILITY_HIDDEN
-- Performing Test HAVE_ATTRIBUTEVISIBILITY_HIDDEN - Success
-- Performing Test HAVE_BUILTINEXPECT
-- Performing Test HAVEBUILTIN_EXPECT - Success
-- Performing Test HAVE___SYNC_VAL_COMPARE_ANDSWAP
-- Performing Test HAVESYNC_VAL_COMPARE_AND_SWAP - Success
-- Performing Test HAVE_RWLOCK
-- Performing Test HAVE_RWLOCK - Failed
-- Performing Test HAVEDECLSPEC
-- Performing Test HAVEDECLSPEC - Failed
-- Performing Test STL_NO_NAMESPACE
-- Performing Test STL_NO_NAMESPACE - Failed
-- Performing Test STL_STD_NAMESPACE
-- Performing Test STL_STD_NAMESPACE - Success
-- Performing Test HAVE_USING_OPERATOR
-- Performing Test HAVE_USING_OPERATOR - Success
-- Performing Test HAVE_NAMESPACES
-- Performing Test HAVE_NAMESPACES - Success
-- Performing Test HAVE_GCC_TLS
-- Performing Test HAVE_GCC_TLS - Success
-- Performing Test HAVE_MSVC_TLS
-- Performing Test HAVE_MSVC_TLS - Failed
-- Performing Test HAVE_CXX11_TLS
-- Performing Test HAVE_CXX11_TLS - Success
-- Performing Test HAVE_ALIGNED_STORAGE
-- Performing Test HAVE_ALIGNED_STORAGE - Success
-- Performing Test HAVE_CXX11_ATOMIC
-- Performing Test HAVE_CXX11_ATOMIC - Success
-- Performing Test HAVE_CXX11_NULLPTR_T
-- Performing Test HAVE_CXX11_NULLPTR_T - Success
-- Performing Test HAVE_LOCALTIME_R
-- Performing Test HAVE_LOCALTIME_R - Success
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /root/yjj/PaddleSeg-release-2.9/deploy/cpp/glog/build
[root@iZbp1i9nwh28kh5lxp9vhiZ build]# make -j
[ 4%] Building CXX object CMakeFiles/glog.dir/src/demangle.cc.o
[ 9%] Building CXX object CMakeFiles/glog.dir/src/logging.cc.o
[ 13%] Building CXX object CMakeFiles/glog.dir/src/raw_logging.cc.o
[ 18%] Building CXX object CMakeFiles/glog.dir/src/symbolize.cc.o
[ 22%] Building CXX object CMakeFiles/glog.dir/src/utilities.cc.o
[ 27%] Building CXX object CMakeFiles/glog.dir/src/vlog_is_on.cc.o
[ 31%] Building CXX object CMakeFiles/glog.dir/src/signalhandler.cc.o
[ 36%] Linking CXX shared library libglog.so
/usr/bin/ld: /usr/local/lib/libgflags.a(gflags.cc.o): relocation R_X86_64_32S against .rodata' can not be used when making a shared object; recompile with -fPIC /usr/bin/ld: /usr/local/lib/libgflags.a(gflags_reporting.cc.o): relocation R_X86_64_32 against
.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: /usr/local/lib/libgflags.a(gflags_completions.cc.o): relocation R_X86_64_32S against symbol `_ZNSs4_Rep20_S_empty_rep_storageE@@GLIBCXX_3.4' can not be used when making a shared object; recompile with -fPIC
/usr/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
make[2]: [libglog.so.0.5.0] Error 1
make[1]: [CMakeFiles/glog.dir/all] Error 2
make: *** [all] Error 2
[root@iZbp1i9nwh28kh5lxp9vhiZ build]#
我的环境是g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44),下载的预测库manylinux_cpu_avx_mkl_gcc5.4。我把官网test_seg.cc中glog部分注释了。然后执行 sh run_seg_cpu.sh的日志如下:
CMakeFiles/test_seg.dir/src/test_seg.cc.o: In function create_predictor(YamlConfig const&)': test_seg.cc:(.text+0x8c2): undefined reference to
paddle::AnalysisConfig::SetModel(std::string const&, std::string const&)'
test_seg.cc:(.text+0xf31): undefined reference to paddle::AnalysisConfig::SetTRTDynamicShapeInfo(std::map<std::string, std::vector<int, std::allocator<int> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<int, std::allocator<int> > > > >, std::map<std::string, std::vector<int, std::allocator<int> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<int, std::allocator<int> > > > >, std::map<std::string, std::vector<int, std::allocator<int> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::vector<int, std::allocator<int> > > > >, bool)' test_seg.cc:(.text+0xfa3): undefined reference to
paddle::AnalysisConfig::EnableTunedTensorRtDynamicShape(std::string const&, bool)'
CMakeFiles/test_seg.dir/src/test_seg.cc.o: In function main': test_seg.cc:(.text+0x180b): undefined reference to
paddle_infer::Predictor::GetInputNames()'
test_seg.cc:(.text+0x1849): undefined reference to paddle_infer::Predictor::GetInputHandle(std::string const&)' test_seg.cc:(.text+0x194c): undefined reference to
paddle_infer::Predictor::GetOutputNames()'
test_seg.cc:(.text+0x198a): undefined reference to paddle_infer::Predictor::GetOutputHandle(std::string const&)' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<wchar_t, std::char_traitsvtable for std::__cxx11::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::std::__codecvt_utf8_base<wchar_t>::do_max_length() const@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
typeinfo for std::codecvt_utf8_basestd::__codecvt_utf8_base<wchar_t>::do_encoding() const@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traitsstd::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traitsstd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_erase(unsigned long, unsigned long)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_ostringstream<char, std::char_traitsstd::basic_istream<char, std::char_traits<char> >& std::getline<char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traitsstd::basic_istream<char, std::char_traits<char> >& std::operator>><char, std::char_traits<char>, std::allocator<char> >(std::basic_istream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::__cxx11::basic_string<char, std::char_traitsstd::__codecvt_utf8_base<wchar_t>::do_out(__mbstate_t&, wchar_t const*, wchar_t const*, wchar_t const*&, char*, char*, char*&) const@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_stringstream<char, std::char_traitsstd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_append(char const*, unsigned long)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::invalid_argument::invalid_argument(char const)@GLIBCXX_3.4.21'
../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to std::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::resize(unsigned long, wchar_t)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traitsstd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::reserve(unsigned long)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traitsvtable for std::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::VTT for std::__cxx11::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traitsstd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::substr(unsigned long, unsigned long) const@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_mutate(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traitsstd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::thread::_M_start_thread(std::shared_ptrstd::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::__cxx11::basic_string<char, std::char_traitsstd::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >::~basic_ostringstream()@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_stringbuf<char, std::char_traitsstd::__future_base::_State_baseV2::_Make_ready::_M_set()@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::codecvt_utf8_basevtable for std::__cxx11::basic_istringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::replace(unsigned long, unsigned long, char const*, unsigned long)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::basic_istream<char, std::char_traitsstd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(unsigned long, unsigned long, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) const@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_stringbuf<char, std::char_traitsstd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::find_first_not_of(char const*, unsigned long, unsigned long) const@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
VTT for std::cxx11::basic_stringstream<char, std::char_traitsstd::__codecvt_utf8_base<wchar_t>::~__codecvt_utf8_base()@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traitsstd::__codecvt_utf8_base<wchar_t>::do_always_noconv() const@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_stringstream<char, std::char_traitsstd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::compare(char const*) const@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::runtime_error::runtime_error(std::cxx11::basic_string<char, std::char_traitsvtable for std::__cxx11::basic_ostringstream<char, std::char_traits<char>, std::allocator<char> >@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traits__cxa_throw_bad_array_new_length@CXXABI_1.3.8' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::logic_error::logic_error(std::logic_error const&)@GLIBCXX_3.4.21'
../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to std::runtime_error::runtime_error(char const*)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::out_of_range::out_of_range(char const*)@GLIBCXX_3.4.21'
../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to `std::random_device::_M_init(std::std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::push_back(char)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::atomic_futex_unsigned_base::_M_futex_wait_until(unsigned int*, unsigned int, bool, std::chrono::duration<long, std::ratio<1l, 1l> >, std::chrono::duration<long, std::ratio<1l, 1000000000l> >)@GLIBCXX_3.4.21'
../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to `VTT for std::cxx11::basic_ostringstream<char, std::char_traitsstd::__cxx11::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >::basic_stringstream(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::_Ios_Openmode)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::cxx11::basic_string<char, std::char_traitsstd::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
std::logic_error::logic_error(std::__cxx11::basic_string<char, std::char_traitsstd::__cxx11::basic_string<wchar_t, std::char_traits<wchar_t>, std::allocator<wchar_t> >::~basic_string()@GLIBCXX_3.4.21' ../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to
operator delete(void, unsigned long)@CXXABI_1.3.9'
../paddle_inference/paddle/lib/libpaddle_inference.so: undefined reference to `std::__cxx11::basic_string<wchar_t, std::char_traits
问题确认 Search before asking
请提出你的问题 Please ask your question
paddleseg部署linux c++时,按要求要安装yaml-cpp,glog等,但是glog始终在make -j时出错。在多个服务器上尝试失败。日志如下: [root@iZbp1i9nwh28kh5lxp9vhiZ build]# make -j Consolidate compiler generated dependencies of target glog_internal [ 2%] Building CXX object CMakeFiles/glog_internal.dir/src/demangle.cc.o [ 5%] Building CXX object CMakeFiles/glog_internal.dir/src/logging.cc.o [ 7%] Building CXX object CMakeFiles/glog_internal.dir/src/raw_logging.cc.o [ 10%] Building CXX object CMakeFiles/glog_internal.dir/src/symbolize.cc.o [ 12%] Building CXX object CMakeFiles/glog_internal.dir/src/signalhandler.cc.o [ 15%] Building CXX object CMakeFiles/glog_internal.dir/src/utilities.cc.o /root/glog/src/logging.cc:43:24: fatal error: shared_mutex: No such file or directory
include
compilation terminated. In file included from /root/glog/src/symbolize.cc:55:0: /root/glog/src/symbolize.h: In function ‘constexpr google::glog_internalnamespace::SymbolizeOptions google::glog_internalnamespace::operator&(google::glog_internalnamespace::SymbolizeOptions, google::glog_internalnamespace::SymbolizeOptions)’: /root/glog/src/symbolize.h:182:19: error: expected type-specifier static_cast<std::underlying_type_t>(lhs) &
^
/root/glog/src/symbolize.h:182:19: error: expected ‘>’
/root/glog/src/symbolize.h:182:19: error: expected ‘(’
/root/glog/src/symbolize.h:182:19: error: ‘underlying_type_t’ is not a member of ‘std’
/root/glog/src/symbolize.h:182:58: error: expected primary-expression before ‘>>’ token
static_cast<std::underlying_type_t>(lhs) &
^
/root/glog/src/symbolize.h:183:19: error: expected type-specifier
static_cast<std::underlying_type_t>(rhs));
^
/root/glog/src/symbolize.h:183:19: error: expected ‘>’
/root/glog/src/symbolize.h:183:19: error: expected ‘(’
/root/glog/src/symbolize.h:183:19: error: ‘underlying_type_t’ is not a member of ‘std’
/root/glog/src/symbolize.h:183:58: error: expected primary-expression before ‘>>’ token
static_cast<std::underlying_type_t>(rhs));
^
/root/glog/src/symbolize.h:183:66: error: expected ‘)’ before ‘;’ token
static_cast<std::underlying_type_t>(rhs));
^
/root/glog/src/symbolize.h:183:66: error: expected ‘)’ before ‘;’ token
/root/glog/src/symbolize.h:184:1: error: body of constexpr function ‘constexpr google::glog_internalnamespace::SymbolizeOptions google::glog_internalnamespace::operator&(google::glog_internalnamespace::SymbolizeOptions, google::glog_internalnamespace::SymbolizeOptions)’ not a return-statement
}
^
/root/glog/src/symbolize.h: In function ‘constexpr google::glog_internalnamespace::SymbolizeOptions google::glog_internalnamespace::operator|(google::glog_internalnamespace::SymbolizeOptions, google::glog_internalnamespace::SymbolizeOptions)’:
/root/glog/src/symbolize.h:189:19: error: expected type-specifier
static_cast<std::underlying_type_t>(lhs) |
^
/root/glog/src/symbolize.h:189:19: error: expected ‘>’
/root/glog/src/symbolize.h:189:19: error: expected ‘(’
/root/glog/src/symbolize.h:189:19: error: ‘underlying_type_t’ is not a member of ‘std’
/root/glog/src/symbolize.h:189:58: error: expected primary-expression before ‘>>’ token
static_cast<std::underlying_type_t>(lhs) |
^
/root/glog/src/symbolize.h:190:19: error: expected type-specifier
static_cast<std::underlying_type_t>(rhs));
^
/root/glog/src/symbolize.h:190:19: error: expected ‘>’
/root/glog/src/symbolize.h:190:19: error: expected ‘(’
/root/glog/src/symbolize.h:190:19: error: ‘underlying_type_t’ is not a member of ‘std’
/root/glog/src/symbolize.h:190:58: error: expected primary-expression before ‘>>’ token
static_cast<std::underlying_type_t>(rhs));
^
/root/glog/src/symbolize.h:190:66: error: expected ‘)’ before ‘;’ token
static_cast<std::underlying_type_t>(rhs));
^
/root/glog/src/symbolize.h:190:66: error: expected ‘)’ before ‘;’ token
/root/glog/src/symbolize.h:191:1: error: body of constexpr function ‘constexpr google::glog_internalnamespace::SymbolizeOptions google::glog_internalnamespace::operator|(google::glog_internalnamespace::SymbolizeOptions, google::glog_internalnamespace::SymbolizeOptions)’ not a return-statement
}
^
In file included from /root/glog/src/demangle.cc:43:0:
/root/glog/src/utilities.h:173:27: error: ‘std::enable_if_t’ has not been declared
template <class F, std::enable_if_t<
^
/root/glog/src/utilities.h:173:38: error: expected ‘>’ before ‘<’ token
template <class F, std::enable_if_t<
^
/root/glog/src/utilities.h:210:22: error: enclosing class of constexpr non-static member function ‘google::glog_internalnamespace::FileDescriptor::operator bool() const’ is not a literal type
constexpr explicit operator bool() const noexcept {
^
/root/glog/src/utilities.h:190:22: note: ‘google::glog_internalnamespace::FileDescriptor’ is not literal because:
class GLOG_NO_EXPORT FileDescriptor final {
^
/root/glog/src/utilities.h:190:22: note: ‘google::glog_internalnamespace::FileDescriptor’ has a non-trivial destructor
/root/glog/src/utilities.h:214:17: error: enclosing class of constexpr non-static member function ‘int google::glog_internalnamespace::FileDescriptor::get() const’ is not a literal type
constexpr int get() const noexcept { return fd_; }
^
/root/glog/src/utilities.h: In member function ‘int google::glog_internalnamespace::FileDescriptor::release()’:
/root/glog/src/utilities.h:216:35: error: ‘exchange’ is not a member of ‘std’
int release() noexcept { return std::exchange(fd_, InvalidHandle); }
^
/root/glog/src/utilities.h: In function ‘constexpr bool google::glog_internalnamespace::operator==(const google::glog_internalnamespace::FileDescriptor&, int)’:
/root/glog/src/utilities.h:243:18: error: call to non-constexpr function ‘int google::glog_internalnamespace::FileDescriptor::get() const’
return lhs.get() == rhs;
^
/root/glog/src/utilities.h: In function ‘constexpr bool google::glog_internalnamespace::operator==(const google::glog_internalnamespace::FileDescriptor&, std::nullptr_t)’:
/root/glog/src/utilities.h:259:11: error: call to non-constexpr function ‘google::glog_internalnamespace::FileDescriptor::operator bool() const’
return !lhs;
^
/root/glog/src/utilities.h: In function ‘constexpr bool google::glog_internalnamespace::operator==(std::nullptr_t, const google::glog_internalnamespace::FileDescriptor&)’:
/root/glog/src/utilities.h:263:11: error: call to non-constexpr function ‘google::glog_internalnamespace::FileDescriptor::operator bool() const’
return !rhs;
^
后面没贴完。