nodejs 安装  npm安装

安装完nodejs,npm就自动安装上了,不过npm 下载会很慢,所以需要修改镜像地址

npm config set registry  http://registry.npm.taobao.org/

node typescript api编译js nodejs编译安装_python

系统变量新建 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

https://www.python.org/download/releases/2.7.3/#download

安装完成 后配置python环境变量

安装VS2015,当做编译器,发现VS2015 编译node提示需要windows sdk8.1,下载windows sdk8.1  安装不上,因为必须要是win10才能支持安装

删除VS2015,安装VS2013

下载examples,注意nodejs每个版本依赖v8引擎是不一样,所以v8引擎的接口一改,整个addon就需要改,这里就需要把下载的example的代码根据文档调整为最新的代码。

http://nodejs.cn/doc/node_4/addons.html#linking-to-nodejs-own-dependencies

https://github.com/nodejs/node-addon-examples

cmd进去项目目录

输入  node-gyp configure 根据代码生成相应的编译工程项目(windows下会依赖Vs生成vs项目)

输入  node-gyp build 根据项目会生成相应的.node文件  给js使用

 GDB  去断点调试

输入node -p process.versions.v8 获取v8引擎的版本号

v8 api  https://v8docs.nodesource.com/

nodejs编译addon

https://blog.scottfrees.com/c-processing-from-node-js

参照例子,例子里提供了,1.普通类结构的输入输出  2数组结构的输入输出 3异步回调方法的实现

使用node-gyp configure生成项目,node-gyp build编译项目,其中callback会报一个error

粗暴的解决方案是:

用本文编辑器打开项目文件.vcxproj,将HAS_EXCEPTIONS=0的部分删掉

可以编译通过,不过还是会报warning,不过不影响了

node typescript api编译js nodejs编译安装_python_02

Ps:node-gyp configure需要从这些读取nodejs的头文件等信息,如果没有他就会去下载,国内网会比较卡

https://github.com/nodejs/node-gyp/issues/610

node typescript api编译js nodejs编译安装_g++_03

解决方案:

https://breeswish.org/blog/2014/11/14/node-gyp-rebuild-freeze/

输入

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报错 

node typescript api编译js nodejs编译安装_python_04

查资料 说是 gcc版本过低造成的

http://wangying.sinaapp.com/archives/2386

node typescript api编译js nodejs编译安装_python_05

node typescript api编译js nodejs编译安装_python_06

这里--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下编译就可以成功了

遇到 /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found错误的解决

原因是最新升级gcc后生成的动态库没有替换老的动态库

strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX 查询确实没有

node typescript api编译js nodejs编译安装_g++_07

2.查找到gcc的目录

find / -name "libstdc++.so"

node typescript api编译js nodejs编译安装_nojdes_08

3.查找gcc目录下是否包含

node typescript api编译js nodejs编译安装_v8_09

4.

node typescript api编译js nodejs编译安装_python_10