Hi everyone, I am a beginner on Cap'n Proto and I would like to ask a build question. I am using Clang 3.5.0 to build Cap'n Proto but failed. What I did for build was
./configure CXX=clang++ CXXFLAGS='-std=gnu++1y -g' make and the build error is as follows: luckyboy@cse-322osu10:capnproto-c++-0.5.3.1$ make depbase=`echo src/capnp/compiler/module-loader.o | sed 's|[^/]*$|.deps/&|;s|\.o$||'`;\ clang++ -stdlib=libc++ -DHAVE_CONFIG_H -I. -I./src -I./src -DKJ_HEADER_WARNINGS -DCAPNP_HEADER_WARNINGS -DCAPNP_INCLUDE_DIR='"/usr/local/include"' -pthread -g -pthread -MT src/capnp/compiler/module-loader.o -MD -MP -MF $depbase.Tpo -c -o src/capnp/compiler/module-loader.o src/capnp/compiler/module-loader.c++ &&\ mv -f $depbase.Tpo $depbase.Po In file included from src/capnp/compiler/module-loader.c++:22: In file included from src/capnp/compiler/module-loader.h:29: In file included from src/capnp/compiler/compiler.h:29: In file included from ./src/capnp/compiler/grammar.capnp.h:7: In file included from ./src/capnp/generated-header-support.h:31: In file included from ./src/capnp/layout.h:36: ./src/kj/common.h:35:4: error: "This code requires C++11. Either your compiler does not support it or it is not enabled." #error "This code requires C++11. Either your compiler does not support it or it is not enabled." ^ ./src/kj/common.h:38:6: error: "Pass -std=c++11 on the compiler command line to enable C++11." #error "Pass -std=c++11 on the compiler command line to enable C++11." ^ ./src/kj/common.h:289:39: warning: alias declarations are a C++11 extension [-Wc++11-extensions] template <typename T> using NoInfer = typename NoInfer_<T>::Type; ^ ./src/kj/common.h:295:43: warning: alias declarations are a C++11 extension [-Wc++11-extensions] template <typename T> using RemoveConst = typename RemoveConst_<T>::Type; ^ ./src/kj/common.h:297:56: error: unknown type name 'constexpr' template <typename> struct IsLvalueReference_ { static constexpr bool value = false; }; ^ ./src/kj/common.h:297:66: error: expected member name or ';' after declaration specifiers template <typename> struct IsLvalueReference_ { static constexpr bool value = false; }; ~~~~~~~~~~~~~~~~ ^ ./src/kj/common.h:298:62: error: unknown type name 'constexpr' template <typename T> struct IsLvalueReference_<T&> { static constexpr bool value = true; }; ^ ./src/kj/common.h:298:72: error: expected member name or ';' after declaration specifiers template <typename T> struct IsLvalueReference_<T&> { static constexpr bool value = true; }; ~~~~~~~~~~~~~~~~ ^ ./src/kj/common.h:300:8: error: unknown type name 'constexpr' inline constexpr bool isLvalueReference() { return IsLvalueReference_<T>::value; } ^ ./src/kj/common.h:300:18: error: expected unqualified-id inline constexpr bool isLvalueReference() { return IsLvalueReference_<T>::value; } ^ ./src/kj/common.h:303:30: error: explicit specialization of non-template struct 'Decay_' template <typename T> struct Decay_<T&> { typedef typename Decay_<T>::Type Type; }; ^ ~~~~ ./src/kj/common.h:303:71: error: no type named 'Type' in 'Decay_<T>' template <typename T> struct Decay_<T&> { typedef typename Decay_<T>::Type Type; }; ~~~~~~~~~~~~~~~~~~~~^~~~ ./src/kj/common.h:304:38: warning: rvalue references are a C++11 extension [-Wc++11-extensions] template <typename T> struct Decay_<T&&> { typedef typename Decay_<T>::Type Type; }; ^ ./src/kj/common.h:311:37: warning: alias declarations are a C++11 extension [-Wc++11-extensions] template <typename T> using Decay = typename Decay_<T>::Type; ^ ./src/kj/common.h:315:36: warning: alias declarations are a C++11 extension [-Wc++11-extensions] template <bool b> using EnableIf = typename EnableIf_<b>::Type; ^ ./src/kj/common.h:322:13: error: expected ';' at end of declaration T instance() noexcept; ^ ; ./src/kj/common.h:322:14: error: C++ requires a type specifier for all declarations T instance() noexcept; ^~~~~~~~ ./src/kj/common.h:343:25: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions] DisallowConstCopy() = default; ^ ./src/kj/common.h:345:38: warning: rvalue references are a C++11 extension [-Wc++11-extensions] DisallowConstCopy(DisallowConstCopy&&) = default; ^ ./src/kj/common.h:345:44: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions] DisallowConstCopy(DisallowConstCopy&&) = default; ^ ./src/kj/common.h:347:49: warning: rvalue references are a C++11 extension [-Wc++11-extensions] DisallowConstCopy& operator=(DisallowConstCopy&&) = default; ^ ./src/kj/common.h:347:55: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions] DisallowConstCopy& operator=(DisallowConstCopy&&) = default; ^ ./src/kj/common.h:351:67: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions] inline DisallowConstCopy::DisallowConstCopy(DisallowConstCopy&) = default; ^ ./src/kj/common.h:352:78: warning: defaulted function definitions are a C++11 extension [-Wc++11-extensions] inline DisallowConstCopy& DisallowConstCopy::operator=(DisallowConstCopy&) = default; ^ ./src/kj/common.h:364:48: error: unknown type name 'constexpr' template <typename T> struct IsConst_ { static constexpr bool value = false; }; ^ ./src/kj/common.h:364:58: error: expected member name or ';' after declaration specifiers template <typename T> struct IsConst_ { static constexpr bool value = false; }; ~~~~~~~~~~~~~~~~ ^ ./src/kj/common.h:365:57: error: unknown type name 'constexpr' template <typename T> struct IsConst_<const T> { static constexpr bool value = true; }; ^ ./src/kj/common.h:365:67: error: expected member name or ';' after declaration specifiers template <typename T> struct IsConst_<const T> { static constexpr bool value = true; }; ~~~~~~~~~~~~~~~~ ^ ./src/kj/common.h:366:23: error: unknown type name 'constexpr' template <typename T> constexpr bool isConst() { return IsConst_<T>::value; } ^ ./src/kj/common.h:366:33: error: expected unqualified-id template <typename T> constexpr bool isConst() { return IsConst_<T>::value; } ^ ./src/kj/common.h:369:30: error: explicit specialization of non-template struct 'EnableIfNotConst_' template <typename T> struct EnableIfNotConst_<const T>; ^ ~~~~~~~~~ ./src/kj/common.h:370:48: warning: alias declarations are a C++11 extension [-Wc++11-extensions] template <typename T> using EnableIfNotConst = typename EnableIfNotConst_<T>::Type; ^ ./src/kj/common.h:374:45: warning: alias declarations are a C++11 extension [-Wc++11-extensions] template <typename T> using EnableIfConst = typename EnableIfConst_<T>::Type; ^ ./src/kj/common.h:378:52: warning: alias declarations are a C++11 extension [-Wc++11-extensions] template <typename T> using RemoveConstOrDisable = typename RemoveConstOrDisable_<T>::Type; ^ fatal error: too many errors emitted, stopping now [-ferror-limit=] clang: /home/sxl463/working/softboundcets-3.5.0/softboundcets-llvm-3.5.0/include/llvm/Support/Casting.h:95: static bool llvm::isa_impl_cl<clang::FunctionDecl, const clang::DeclContext *>::doit(const From *) [To = clang::FunctionDecl, From = const clang::DeclContext *]: Assertion `Val && "isa<> used on a null pointer"' failed. 0 clang 0x000000000288d535 llvm::sys::PrintStackTrace(_IO_FILE*) + 37 1 clang 0x000000000288de33 2 libpthread.so.0 0x00002b42dfb1c330 3 libc.so.6 0x00002b42e09adc37 gsignal + 55 4 libc.so.6 0x00002b42e09b1028 abort + 328 5 libc.so.6 0x00002b42e09a6bf6 6 libc.so.6 0x00002b42e09a6ca2 7 clang 0x0000000000c60e1b clang::Sema::FinalizeDeclaration(clang::Decl*) + 3307 8 clang 0x0000000000b17115 clang::Parser::ParseCXXClassMemberDeclaration(clang::AccessSpecifier, clang::AttributeList*, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject*) + 6069 9 clang 0x0000000000b136eb clang::Parser::ParseCXXMemberSpecification(clang::SourceLocation, clang::SourceLocation, clang::Parser::ParsedAttributesWithRange&, unsigned int, clang::Decl*) + 2491 10 clang 0x0000000000b11f47 clang::Parser::ParseClassSpecifier(clang::tok::TokenKind, clang::SourceLocation, clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, bool, clang::Parser::DeclSpecContext, clang::Parser::ParsedAttributesWithRange&) + 8231 11 clang 0x0000000000af51f8 clang::Parser::ParseDeclarationSpecifiers(clang::DeclSpec&, clang::Parser::ParsedTemplateInfo const&, clang::AccessSpecifier, clang::Parser::DeclSpecContext, clang::Parser::LateParsedAttrList*) + 2888 12 clang 0x0000000000b645ec clang::Parser::ParseSingleDeclarationAfterTemplate(unsigned int, clang::Parser::ParsedTemplateInfo const&, clang::ParsingDeclRAIIObject&, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 604 13 clang 0x0000000000b64037 clang::Parser::ParseTemplateDeclarationOrSpecialization(unsigned int, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 1015 14 clang 0x0000000000b63a30 clang::Parser::ParseDeclarationStartingWithTemplate(unsigned int, clang::SourceLocation&, clang::AccessSpecifier, clang::AttributeList*) + 288 15 clang 0x0000000000af4228 clang::Parser::ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 872 16 clang 0x0000000000ae42db clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) + 1755 17 clang 0x0000000000b0b149 clang::Parser::ParseInnerNamespace(std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, std::vector<clang::IdentifierInfo*, std::allocator<clang::IdentifierInfo*> >&, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) + 313 18 clang 0x0000000000b0aa11 clang::Parser::ParseNamespace(unsigned int, clang::SourceLocation&, clang::SourceLocation) + 5921 19 clang 0x0000000000af4069 clang::Parser::ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 425 20 clang 0x0000000000ae42db clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) + 1755 21 clang 0x0000000000b0b149 clang::Parser::ParseInnerNamespace(std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, std::vector<clang::IdentifierInfo*, std::allocator<clang::IdentifierInfo*> >&, std::vector<clang::SourceLocation, std::allocator<clang::SourceLocation> >&, unsigned int, clang::SourceLocation&, clang::ParsedAttributes&, clang::BalancedDelimiterTracker&) + 313 22 clang 0x0000000000b0aa11 clang::Parser::ParseNamespace(unsigned int, clang::SourceLocation&, clang::SourceLocation) + 5921 23 clang 0x0000000000af4069 clang::Parser::ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 425 24 clang 0x0000000000ae42db clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&, clang::ParsingDeclSpec*) + 1755 25 clang 0x0000000000ae3b06 clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 502 26 clang 0x0000000000adf816 clang::ParseAST(clang::Sema&, bool, bool) + 406 27 clang 0x0000000000708bde clang::FrontendAction::Execute() + 62 28 clang 0x00000000006dd513 clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 851 29 clang 0x00000000006bfe70 clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3104 30 clang 0x00000000006b7029 cc1_main(char const**, char const**, char const*, void*) + 665 31 clang 0x00000000006bdb16 main + 9158 32 libc.so.6 0x00002b42e0998f45 __libc_start_main + 245 33 clang 0x00000000006b6cc9 Stack dump: 0. Program arguments: /usr/local/bin/clang -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -main-file-name module-loader.c++ -mrelocation-model static -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.24 -g -dwarf-column-info -coverage-file /home/sxl463/working/capnproto/capnproto-c++-0.5.3.1/src/capnp/compiler/module-loader.o -resource-dir /usr/local/bin/../lib/clang/3.5.0 -dependency-file src/capnp/compiler/.deps/module-loader.Tpo -sys-header-deps -MP -MT src/capnp/compiler/module-loader.o -D HAVE_CONFIG_H -D KJ_HEADER_WARNINGS -D CAPNP_HEADER_WARNINGS -D CAPNP_INCLUDE_DIR="/usr/local/include" -I . -I ./src -I ./src -internal-isystem /usr/local/bin/../include/c++/v1 -internal-isystem /usr/local/include -internal-isystem /usr/local/bin/../lib/clang/3.5.0/include -internal-externc-isystem /usr/include/x86_64-linux-gnu -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/sxl463/working/capnproto/capnproto-c++-0.5.3.1 -ferror-limit 19 -fmessage-length 134 -pthread -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -o src/capnp/compiler/module-loader.o -x c++ src/capnp/compiler/module-loader.c++ 1. ./src/capnp/generated-header-support.h:262:40: current parser token 'const' 2. ./src/capnp/generated-header-support.h:39:1: parsing namespace 'capnp' 3. ./src/capnp/generated-header-support.h:48:1: parsing namespace '_' 4. ./src/capnp/generated-header-support.h:260:1: parsing struct/union/class body 'ChooseBrand' clang: error: unable to execute command: Aborted (core dumped) clang: error: clang frontend command failed due to signal (use -v to see invocation) clang version 3.5.0 (tags/RELEASE_350/final) Target: x86_64-unknown-linux-gnu Thread model: posix clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script. clang: note: diagnostic msg: Error generating preprocessed source(s). make: *** [src/capnp/compiler/module-loader.o] Error 254 -------------------------------------------------------------------------------------------------------------------------- It seems someone had asked similar questions 3 years ago but no official solution. What I am eager to know is how should I handle this? If I want to keep using Clang 3.5, is this unavoidable? Thanks very much for any hints and help! -- You received this message because you are subscribed to the Google Groups "Cap'n Proto" group. To unsubscribe from this group and stop receiving emails from it, send an email to capnproto+unsubscr...@googlegroups.com. Visit this group at https://groups.google.com/group/capnproto.