简体   繁体   中英

Does Google's V8 require C++14 standard?

I am currently trying to build Google's V8 engine, following its official documents .

And I get some errors here:

  1. Need a newer glibc
     python ../../tools/run.py ./bytecode_builtins_list_generator gen/builtins-generated/bytecodes-builtins-list.h ./bytecode_builtins_list_generator: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./bytecode_builtins_list_generator) Return code is 1 [115/1639] CXX obj/torque_base/torque-parser.o
  2. Some C++14 grammar Such as in include/v8-internal.h, there is a std::remove_cv_t
     template <class T> V8_INLINE void PerformCastCheck(T* data) { CastCheck<std::is_base_of<Data, T>::value && !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data); }

When looking into its building procedure, I find it actually uses third_party/llvm-build/Release+Asserts/bin/clang++ with a -std=c++14 flag.

So I am wondering if I can build a V8 engine with some old gcc, like gcc 4.4.6/4.8.5?

Yes, V8 currently requires C++14.

Expect future changes to be in the direction of requiring C++17 (though there's no timeline for that yet), rather than going back to older C++ standards.

Unfortunately, you can't build C++14 code with older gcc.

As here shown , you can build C++14 with gcc 5.0, which is C++14 compliant.

EDIT: Actually it would be easier to download gcc 5.0 on your platform and compile it with your current gcc version and then compile V8 with this newer compiler.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM