首页 > 解决方案 > Chrome V8 示例编译错误,我该如何解决“remove_cv_t”不是“std”的成员?

问题描述

我正在尝试运行示例:

g++ -I. -Iinclude samples/hello-world.cc -o hello_world -lv8_monolith -Lout.gn/x64.release/obj/ -lrt -ldl -pthread -std=c++0x -DV8_COMPRESS_POINTERS

但我得到了错误:

In file included from ./include/v8.h:30:0,
                 from samples/hello-world.cc:10:
./include/v8-internal.h: In function ‘void v8::internal::PerformCastCheck(T*)’:
./include/v8-internal.h:452:33: error: ‘remove_cv_t’ is not a member of ‘std’
             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
                                 ^
./include/v8-internal.h:452:33: error: ‘remove_cv_t’ is not a member of ‘std’
./include/v8-internal.h:452:50: error: template argument 2 is invalid
             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
                                                  ^
./include/v8-internal.h:452:61: error: ‘::Perform’ has not been declared
             !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);

我真的很想使用 V8 引擎,但我什至无法编译示例。我希望我能得到你的帮助。太感谢了。

标签: c++v8

解决方案


-std=c++14应该修复它。

(不幸的是,官方文档在这个微小但重要的细节上已经过时了。)


推荐阅读