Ubuntu12.02 ARMv7 架构,安装node-gyp失败
发布于 7 个月前 作者 Mr-KoPu 583 次浏览 来自 问答

大神助我!!! 用node-gyp工具实现nodejs调用C/C++代码 出现如下问题: 1:首先nodejs官网下载nodejs: node-v8.11.2-linux-armv7l.tar.gz 解压后添加环境变量。 2:GCC版本gcc.jpg 3:安装node-gyp失败:图片.png用的taobao源。 4:用npm安装node-gyp失败之后,我发现在官方给的nodejs安装包里有node-gyp,于是将node-gyp添加到环境变量 5:编译后执行node test.js 没有输出
参照的例子:Node.js调用C/C++ 三个文件: binding.gyp

  1. {
  2. “targets”:[
  3. {
  4. "target_name":"test",
    
  5.     "sources":["test.cc"]
    
  6. }
  7. ]
  8. }

test.cc

  • #include <node.h>
  • #include <v8.h>
  • using namespace v8;
  • void hello(const FunctionCallbackInfo<Value>& args) {
  • Isolate* isolate = Isolate::GetCurrent();
  • HandleScope scope(isolate);
  • if (args.Length() < 2 || !args[0]->IsString()) {
  • isolate->ThrowException(Exception::TypeError(
    
  •   String::NewFromUtf8(isolate, "Wrong arguments")));
    
  • return;
    
  • }
  • Local<Function> callback = Local<Function>::Cast(args[1]);
  • Local<Value> argv[1] = {
  • String::Concat(Local<String>::Cast(args[0]), String::NewFromUtf8(isolate, " world"))
    
  • };
  • callback->Call(isolate->GetCurrentContext()->Global(), 1, argv);
  • }
  • void init(Handle<Object> exports) {
  • NODE_SET_METHOD(exports, “hello”, hello);
  • }
  • NODE_MODULE(test, init);

test.js

  • var test=require(’./build/Release/test’);
  • test.hello(‘test’,function(data){
  • console.log(data);
  • });
回到顶部