将node-expat扩展编译至node.exe中
1、下载node源代码 https://github.com/joyent/node (v:0.10.25)
2、下载node-expat源代码 https://github.com/node-xmpp/node-expat
3、因为node-expat依赖于nan 所以将nan源代码也下载下来(目前尚不知道如何将nan依赖项去除掉) https://github.com/rvagg/nan
4、将nan项目中的 nan.h 复制到node项目src目录中并修改node.gyp文件,添加 src/nan.h 。

5、将node-expat项目deps文件夹中的libexpat复制到node项目的deps文件夹中,并修改node.gyp添加 deps/libexpat/libexpat.gyp:expat

6、将node-expat项目中的文件 node-expat.cc 复制到node项目src目录中,并将文件名改为 node_expat.cc ,修改node.gyp文件添加 src/node_expat.cc

7、将node-expat项目lib目录中的文件node-expat.js复制到node项目lib目录中,并将文件名改为 expat.js 。用文本编辑器打开 expat.js 文件修改源代码
var expat = require('../build/Release/node_expat.node');
改为
var expat = require('expat');
8、将引用添加至node.gyp中

9、用文本编辑器打开node项目中 src/node_extensions.h 文件,添加 NODE_EXT_LIST_ITEM(node_expat)

10、至此完成修改,运行node项目根目录文件 vcbuild.bat
`
`
漫长的等待后,生成成功。

11、运行生成的文件进行测试: Release\node.exe

注:编译环境为Windows 8,猜测在linux下也能通过编译,没有进行测试。
https://github.com/grj1046/nodejs-expat
将node-expat扩展编译至node.exe中的更多相关文章
- 用pecl/pear独立编译PHP扩展 vs. 把扩展编译到PHP内核中
将扩展编译到php内部的方式会提高php运行扩展的效率,但是每次需要新添加扩展时都需要把php以及之前添加的所有扩展重新编译一边,非常麻烦. 独立编译扩展,php外部调用扩展的方式虽然会牺牲一点点的性 ...
- Less-css预处理Node and VS扩展编译
node编译 第一步:https://nodejs.org/en/ 到node官网下载最新的node 第二步:和普通软件一样把node安装好 第三步:运行-cmd,准备安装less 全局安装(整个电 ...
- Centos6.4编译安装Node.js(已验证)
1.准备源文件包 [felix@MyTerminal Downloads]$ mv node-6.5.0 node [felix@MyTerminal Downloads]$ ls node node ...
- org.w3c.dom.Node.getTextContent()方法编译错误-已解决
org.w3c.dom.Node.getTextContent()方法编译错误. 在项目的Java Build Path | Order and Export选项卡中,将JRE System Libr ...
- Sublime3 配置node.js 环境 The process "node.exe" not found
配置中文显示调试结果 [下载地址](https://github.com/tanepiper/SublimeText-Nodejs) 1. 到上述地址下载压缩文件 2.将文件解压到sublime的插件 ...
- Node.js学习笔记(2) - Node.js安装及入门hello world
今天来简单的记录一下Node.js的安装配置以及简单的入门 一.Node.js的安装 1.windows下的安装 windows下的安装很简单,只需要去官网http://nodejs.org中,找到w ...
- Node.js入门教程:Node.js如何安装配置并部署第一个网站
前言:作为一个资深的前端开发人员,不懂的Node.js 那你绝对是不能跟别人说你是资深的前端程序猿滴! 今天洋哥就来和大家一起学习被大牛称之为前端必学的技能之一Node! 那么Node到底是什么呢? ...
- 【node】使用nvm管理node版本
写在前面 nvm(nodejs version manager)是nodejs的管理工具,如果你想快速更新node版本,并且不覆盖之前的版本:或者想要在不同的node版本之间进行切换: 使用nvm来安 ...
- node部署静态页面;node上线静态页面
node部署静态页面上线 静态页面上线可以采用 nginx, tomcat或者node ,我们这里介绍下node部署静态页面 这里采用最简单的上线方式,我们就不用node + express + ej ...
随机推荐
- Unity3D发布WebPlayer时Failed to download data file解决方案
今天发布WebPlayer时, 发现直接打开html是可以正常运行的, 但是通过iis访问的话就会报错: Failed to download data file. 一开始以为是防火墙, 后来发现不是 ...
- LeetCode——Valid Sudoku
Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could be ...
- JAVA程序生成XML标准化的文件格式,缩进,美化。
//他开始Document映射到文件 TransformerFactory transFactory = TransformerFactory.newInstance(); Transformer t ...
- Flex强制类型转换错误
1.错误描写叙述 TypeError: Error #1034: 强制转换类型失败:无法将 HoleDetailInnerClass0@c2cccf1 转换为 mx.controls.listClas ...
- W5500 keep-alive的用途及使用
大家是否遇到过这种问题,W5500作为server已经建立连接,突然网线掉了,然后再去连接W5500.就连不上了. 为什么?以下对这个问题进行解释说明,并提出解决的方法. 图1中的上位机程序作为cli ...
- iOS Foundation 框架基类
iOS Foundation 框架基类 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转 ...
- Google Maps Android API v2 (3)- 地图添加到Android应用程序
添加地图的基本步骤是: (一旦)按照以下步骤[入门] [开始],获得API,获取密钥所需的属性,并添加到您的Android清单. 添加一个碎片对象 要处理地图的活动.做到这一点最简单的方法是增加一个 ...
- Java反射探索研究(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankakay 摘要:本文详细深入讲解是Java中反射的机制,并介绍了如何通过反射来生成对象.调用函数.取得 ...
- sublime配置攻略
大家好,今天给大家分享的编辑器:sublime text2 我用过非常多编辑器, EditPlus.EmEditor.Notepad++.Notepad2.UltraEdit.Editra.V ...
- drools6 基本使用 -- 2
续drools6 基本使用1 http://blog.csdn.net/cloud_ll/article/details/26979355 8. 创建src/main/test folder.把dro ...