使用node.js插件提升库 – segfault

的package.json:

{ "name": "BoostRegexJS", "version": "0.0.1", "description": "Boost::Regex API for node.js", "main": "regex.js", "private": true, "dependencies": { "bindings": "~1.2.1", "nan": "^2.0.0" }, "scripts": { "test": "node regex.js" }, "gypfile": true } 

bindings.gyp

 { "targets": [ { "target_name": "boostregex", "sources": [ "regex.cpp" ], "include_dirs": [ "~/boost/include", "<!(node -e \"require('nan')\")" ], "libraries": [ "~/boost/lib/libboost_regex.so" ], "cflags_cc!": [ "-fno-rtti", "-fno-exceptions" ], "cflags!": [ "-fno-exceptions" ], "conditions": [ ['OS=="mac"', { "xcode_settings": { 'OTHER_CPLUSPLUSFLAGS' : ['-std=c++11','-stdlib=libc++', '-v'], 'OTHER_LDFLAGS': ['-stdlib=libc++'], 'MACOSX_DEPLOYMENT_TARGET': '10.7', 'GCC_ENABLE_CPP_EXCEPTIONS': 'YES' } }], ['OS!="win"', { 'include_dirs': [ 'config/win' ], 'cflags+': [ '-std=c++11' ], 'cflags_c+': [ '-std=c++11' ], 'cflags_cc+': [ '-std=c++11' ], }] ] } ] } 

regex.cpp

 #include <nan.h> #include <string> #include <boost/regex.hpp> void Method(const Nan::FunctionCallbackInfo<v8::Value>& info) { info.GetReturnValue().Set(Nan::New("worldd").ToLocalChecked()); } void Init(v8::Local<v8::Object> exports) { exports->Set(Nan::New("hello").ToLocalChecked(), Nan::New<v8::FunctionTemplate>(Method)->GetFunction()); } NODE_MODULE(boostregex, Init) 

只是因为#include<boost/regex.hpp>我运行这段代码时遇到了段错误:

 var addon = require('bindings')('boostregex'); console.log(addon.hello()); // 'world' 

没有这个包括,插件工作正常..

奇怪,因为它只是头文件..

Boost库编译成功(尝试了clang和gcc,都可以)

FreeBSD,Node.js v4

Anyidea为什么段错误?

       

网上收集的解决方案 "使用node.js插件提升库 – segfault"