Skip to content

Building node.js on mingw

mattn edited this page Feb 7, 2011 · 24 revisions

The latests versions of Node (v0.3.6 and better) can be built with mingw. This is work in progress; expect this node build to be unstable and very much incomplete.

Prerequisites

  • Windows xp sp2 or later
  • The latest mingw
    • use mingw-get-inst from mingw.org
    • install the developer toolkit as well as C and C++ compilers.
  • Python 2.7 from python.org
  • Git, preferably msysgit

Build steps

This will assume you're checking out and compiling node in c:\node.

  • Make sure python and git directories are in your path environment variable. A guide to editing path on windows can be found here.
  • Open the mingw bash shell
  • cd /c
  • git clone https://github.com/ry/node.git
  • cd /c/node
  • ./configure --without-ssl
  • make
  • ./node.exe

Known issues

These are known issues with the build process. A list of known issues with mingw-built node can be found found in TODO.win32.

Git doesn't work from the mingw bash shell

Some people have reported problems getting this to work. If you are affected by this, use git from the windows command prompt.

Build fails with msvc / Microsoft Visual Studio installed

Having Microsoft Visual Studio installed confuses the V8 build system. This is a know issue, there is currently no good solution for it.

Then you need to fix toolician for scons: 'tools/scons/scons-local-1.2.0/SCons/Tool/init.py'.

    if str(platform) == 'win32':
        "prefer Microsoft tools on Windows"
        linkers = ['mslink', 'gnulink', 'ilink', 'linkloc', 'ilink32' ]
        c_compilers = ['msvc', 'mingw', 'gcc', 'intelc', 'icl', 'icc', 'cc', 'bcc32' ]

Fix above to following(changing order of c_compilers).

    if str(platform) == 'win32':
        "prefer Microsoft tools on Windows"
        linkers = ['mslink', 'gnulink', 'ilink', 'linkloc', 'ilink32' ]
        c_compilers = ['mingw', 'msvc', 'gcc', 'intelc', 'icl', 'icc', 'cc', 'bcc32' ]

./configure can't find openssl

Linking with openssl is currently unsupported. Use ./configure --without-ssl.

Clone this wiki locally