我正在尝试将javascript嵌入到一个有点大的C ++工具中,而我正在使用NetBeans。我开始尝试运行hello_world示例,它通过命令行compilaton完成编译和运行,使用:
g++ -I$HOME/v8/ -L$HOME/v8/ hello_world.cpp -o hello_world -Wl,--start-group ~/v8/out/native/obj.target/{tools/gyp/libv8_{base,libbase,snapshot,libplatform},third_party/icu/libicu{uc,i18n,data}}.a -Wl,--end-group -ldl -lrt -pthread -std=c++11
但是,尝试通过链接器上的NetBeans选项链接libs并将其他编译标志添加到编译器中,它不会编译。
此外,NetBeans在v8.h中发现了数百个关于Namespace的错误。例如:
/home/andreoliv/v8/include/v8.h:4567:13: error: ‘Handle’ has not been declared
参考:
int match(Handle<Value> value);
并且在v8.h文件中,其中声明了Handle和Value。 将第4567行修改为:
int match(v8::Handle<v8::Value> value);
摆脱错误,这让我相信这个问题与NetBeans处理命名空间的方式密切相关。
有问题的类型(如Value和Handle)在v8命名空间中声明,但编译器抱怨未指定命名空间。
浪费时间将所有名称更改为v8 ::几乎是不可能的。是否还有其他我忽略的选项或设置,可以在这种情况下使用?