c++ - Google 的 V8 是否需要 C++14 标准?
问题描述
我目前正在尝试按照其官方文档构建 Google 的 V8 引擎。
我在这里遇到一些错误:
- 需要更新的 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
- 一些 C++14 语法 比如在 include/v8-internal.h 中有一个
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); }
在查看它的构建过程时,我发现它实际上third_party/llvm-build/Release+Asserts/bin/clang++
与一个-std=c++14
标志一起使用。
所以我想知道我是否可以用一些旧的 gcc 构建一个 V8 引擎,比如 gcc 4.4.6/4.8.5?
解决方案
是的,V8 目前需要 C++14。
预计未来的变化将朝着需要 C++17 的方向发展(尽管还没有时间表),而不是回到旧的 C++ 标准。
推荐阅读
- python - 连接大型数据帧时出现 MemoryError
- yii2 - Yii2框架的右连接
- html - 有没有办法突出显示单击的垫选项卡?当每个 mat-tab 是动态生成的
- elasticsearch - 如何在索引之前删除单词之间的空格
- mysql - 为每个客户 X 写一个查询,另一个客户 Y 与 X 租了至少一部电影
- servicenow - 选择字段选项限制
- javascript - 在 JavaScript 中将 Unicode 转换为 ASCII
- junit - 如何制作模拟 JdbcTemplate.queryForObject() 方法
- swift - 不允许将已删除或无效的对象添加到领域
- ios - 使用 swift 与网站进行通用链接