错误:在c ++中创建node.js库时,%1不是有效的Win32应用程序

时间:2015-10-02 07:32:48

标签: c++ node.js node.js-addon

我在Visual Studio中构建节点,然后通过在Visual Studio项目中设置适当的路径,成功地在.node扩展中编译此代码。

#include <node.h>

namespace demo {

    using v8::FunctionCallbackInfo;
    using v8::Isolate;
    using v8::Local;
    using v8::Object;
    using v8::String;
    using v8::Value;

    void Method(const FunctionCallbackInfo<Value>& args) {
        Isolate* isolate = args.GetIsolate();
        args.GetReturnValue().Set(String::NewFromUtf8(isolate, "world"));
    }

    void init(Local<Object> exports) {
        NODE_SET_METHOD(exports, "hello", Method);
    }

    NODE_MODULE(addon, init)

}

但是当我通过这段代码调用这个模块时,

var addon = require('./nodeExt');

console.log(addon.hello()); 

我收到了上述错误。请提出你的建议。

1 个答案:

答案 0 :(得分:0)

在Visual Studio中构建并将扩展名更改为.node不会起作用。您需要使用node-gyp为node.js配置和构建本机插件。请参阅此处的指南:

https://nodejs.org/dist/latest-v6.x/docs/api/addons.html

提示:运行sudo ARCHFLAGS="-arch x86_64" gem install pg -- --with-pg-config=/Applications/Postgres.app/Contents/Versions/9.5/bin/pg_config后,可以使用Visual Studio打开.sln文件(build / Release / binding.sln或build / Debug / binding.sln)。