Nodejs 安装 && 编译Addon
nodejs 安装 npm安装
安装完nodejs,npm就自动安装上了,不过npm 下载会很慢,所以需要修改镜像地址
npm config set registry http://registry.npm.taobao.org/
系统变量新建 NODE_PATH 输入D:\Program Files (x86)\nodejs\node_global\node_modules
path新增 D:\Program Files (x86)\nodejs\node_global
输入 npm install express -g 下载 express 框架
编译node addon
1.安装node-gyp
输入npm install node-gyp -g
2.安装python
安装完成 后配置python环境变量
安装VS2015,当做编译器,发现VS2015 编译node提示需要windows sdk8.1,下载windows sdk8.1 安装不上,因为必须要是win10才能支持安装
删除VS2015,安装VS2013
下载examples,注意nodejs每个版本依赖v8引擎是不一样,所以v8引擎的接口一改,整个addon就需要改,这里就需要把下载的example的代码根据文档调整为最新的代码。
cmd进去项目目录
输入 node-gyp configure 根据代码生成相应的编译工程项目(windows下会依赖Vs生成vs项目)
输入 node-gyp build 根据项目会生成相应的.node文件 给js使用
比较讨厌的是,没法从vs建立一个项目去调试,查了下资料,如果调试必须要自己编译一个nodejs的debug版本通过 GDB 去断点调试
输入node -p process.versions.v8 获取v8引擎的版本号
nodejs编译addon
参照例子,例子里提供了,1.普通类结构的输入输出 2数组结构的输入输出 3异步回调方法的实现
使用node-gyp configure生成项目,node-gyp build编译项目,其中callback会报一个error
粗暴的解决方案是:
用本文编辑器打开项目文件.vcxproj,将HAS_EXCEPTIONS=0的部分删掉
可以编译通过,不过还是会报warning,不过不影响了
Ps:node-gyp configure需要从这些读取nodejs的头文件等信息,如果没有他就会去下载,国内网会比较卡
解决方案:
输入
node-gyp install --dist-url https://npm.taobao.org/mirrors/node
会在你的类似于C:\Users\Administrator\.node-gyp\0.10.26下下载正确的nodejs库
nodejs addon在linux上编译
安装node gyp :npm install -g node-gyp
node-gyp configure 没问题
node-gyp build报错
查资料 说是 gcc版本过低造成的
这里--prefix 是指 编译出来的gcc g++的目录位置。
这时候输入 gcc -v 还是老版本的gcc
原因在于 老版本的gcc 安装目录在 /usr/bin下 目录搜索优先
通过 mv/usr/bin/{gcc,g++} /usr/gccback 保存备份
然后需要把新的目录设置到环境变量里
vim /etc/profile
export PATH=$PATH:/usr/local/gcc-5.1.0/bin
source /etc/profile 使配置生效 or . /etc/profile 注意:/etc/profile有空格
升级完g++ 在去linux下编译就可以成功了
原因是最新升级gcc后生成的动态库没有替换老的动态库
1.先strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 查询确实没有
2.查找到gcc的目录
find / -name "libstdc++.so"
3.查找gcc目录下是否包含
4.