最近有个项目想用Node.js,下了版本v0.8.12源码,发现vcbuild.bat缺省生成的是vs2010工程,这让我们以VS2008为主的工程感到很麻烦,就研究了一下,如何在vs2008下编译,折腾了一下,找到一个解决方案:
1.修改configure 中
gyp_args = ['-f', 'msvs', '-G', 'msvs_version=2010']
为
gyp_args = ['-f', 'msvs', '-G', 'msvs_version=2008']
2. 用mc工具,生成 \src\res\node_etw_provider.man 为\src\res\node_etw_provider.h
mc.exe是平台sdk 带的,生成时需要winmeta.xml,需要从平台sdk 中复制过来。
命令行:mc.exe \src\res\node_etw_provider.man ,然后把生成的一堆node_etw_provider 开头的文件,
复制到\Release\obj\global_intermediate\
node_etw_provider .h复制到src目录
3.node-v0.8.12\deps\uv\src\win\poll.c 增加64位的定义
/* maximum signed 64 bit value */
#define INT64_MAX 9223372036854775807i64
4.d:\Code\RichLab\nodejs\node-v0.8.12\deps\http_parser\http_parser.h
中,修改
#if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1600)
为 #if defined(_WIN32) && !defined(__MINGW32__) && (!defined(_MSC_VER) || _MSC_VER<1500)
差不多就这么多了,凭记忆写的,如果还有啥不通的,自个再拍死。
|