Node.js的编译(转)

来源:互联网 发布:中国大数据研究中心 编辑:程序博客网 时间:2024/05/16 00:56

之前编译和简单测试了Google V8引擎,Node.js就是在V8引擎的基础上进一步扩展打造的服务端的JavaScript解释器,当然这个功劳自然离不开牛叉的V8了

V8的设计最初为了浏览器使用,而Node.js让它在服务端继续发扬光大,熟悉MongoDB的一定会想在这个数据库中的引擎是什么了,那是将来的问题了

1:下载最新版本

http://nodejs.org/download/

下载node-v0.10.16.tar.gz

3:测试VS2010编译

打开node.sln


包括多个子工程

从代码量来看,该Node.js工程的源码量有79的左右

所依赖的第三方包包括:

cares

http_parser

npm

openssl

uv

v8

zlib

这些依赖包可谓庞大,多大70多M

通过VS2010编译输出结果为:

========== 全部重新生成: 成功 17 个,失败 2 个,跳过 0 个 ==========

两个错误:

错误    34    error MSB6006: “cmd.exe”已退出,代码为 1。    C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets    151    6    node_js2c
错误    123    error C1083: 无法打开包括文件:“node_natives.h”: No such file or directory    F:\pbase\node-v0.10.16\src\node_javascript.cc    24    1    node
两个工程编程失败

node_js2c

node

查看错误


貌似下载的代码中确实没有node_natives.h

分析原因

Node使用v8附带的js2c.py将node的js代码转化为c语言的数组,也就是node_natives.h,然后直接编译进node的可执行文件中

应该是缺少了将node.js编译为node_natives.h的原因。

在tools下面复制node.js,然后运行js2c.py获取到node-natives.h

huareal@gpx /cygdrive/f/pbase/node-v0.10.16/tools
# ./js2c.py  node_natives.h  ../src/node.js

重新编译

还有一个失败(忽略,已经生成node.exe)

转自:http://blog.csdn.net/huareal/article/details/10086523

参考:http://www.infoq.com/cn/articles/nodejs-npm-install-config


0 0