nodejs生成vs2008工程问题解决方案

时间:2021-06-21 03:14:53
SET GYP_MSVS_VERSION=2008
"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvars32.bat"
vcbuild.bat debug noprojgen nosign

// 1.修改configure 中
  // gyp_args = ['-f', 'msvs', '-G', 'msvs_version=2010']  
// 为
 // gyp_args = ['-f', 'msvs', '-G', 'msvs_version=2008']  
/*github下载的master分支(20121114)中为『gyp_args = ['-f', 'msvs', '-G', 'msvs_version=auto']』*/

2. 用mc工具,生成 \src\res\node_etw_provider.man 为\src\res\node_etw_provider.h
/*.\##PROGRAM_FILES##\Microsoft SDKs\Windows\v6.0A\bin\MC.Exe*/
mc.exe是平台sdk 带的,生成时需要winmeta.xml,需要从平台sdk 中复制过来。
/*.\##PROGRAM_FILES##\Microsoft SDKs\Windows\v6.0A\Include\winmeta.xml*/
命令行: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
/* 20121114 master branch不需增加 */


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)


5.关于stdint.h
// replace with .\node-master\deps\uv\include\uv-private\stdint-msvc2008.h -> stdint.h
5.1 拷贝 stdint.h到http_parser.h所在目录,不能用vs2010版本(6kb),cygwim中stdint.h(5kb)可过
5.2 vu.h中所需stdint.h可用空文件或直接屏蔽


Debug version
1、zutil.h line 200
#      if _MSC_VER < 1500
#        define vsnprintf _vsnprintf
#      endif