{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","results":{"codes":[]},"settings":"","params":[]},"next":{"description":"","pages":[]},"title":"The Windows Situation","type":"basic","slug":"the-windows-situation","excerpt":"","body":"# Windows is now supported\nPrevious versions either didn't support Windows or required a manual step beforehand.  The difficulty of adding Windows support is explained below. Windows compilation with MVCC is supported by automatically creating the necessary supporting libraries.\n\n# Support Approach\nOn Windows, Julia is compiled using gcc in an MSYS2 environment while [node-gyp on Windows](https://github.com/TooTallNate/node-gyp) requires  Microsoft Visual Studio.  However, a library compiled using gcc on MSYS can be made to work with the binary created by node-gyp if it exports normal C-type symbols.  \n\n## From **.DLL** to **.LIB**\nThe library needed by node-gyp is a **.lib** while the library included in the Julia distribution is a **.dll**.  But as [described here](http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs), a **.lib** can be created from a **.dll** using the following steps.\n\n1. use dumpbin to export symbols from the dll into a file for example:\n\n     `dumpbin /exports libjulia.dll > output`\n\n2. transform the output to a **.def** file by removing the extraneous text and placing **EXPORTS** at the top of the time [as described in detail here](https://adrianhenke.wordpress.com/2008/12/05/create-lib-file-from-dll/)\n3. Use lib to create a **.lib** from the **.def**.\n\n     `lib /def:libjulia.def /out:libjulia.lib /machine:x64`\n    \n4. Place libjulia.lib in the same directory as libjulia.dll\n\n## Library creation is automatic\nBoth libjulia.lib and openlibm.lib are created and placed in the same directory as libjulia.dll and openlibm.dll which enables linking to be successful.","updates":[],"order":14,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"566e55c12c1e760d0030c57c","version":{"version":"1.2.3","version_clean":"1.2.3","codename":"","is_stable":true,"is_beta":false,"is_hidden":false,"is_deprecated":false,"categories":["566e55c12c1e760d0030c56d"],"_id":"566e55c02c1e760d0030c56c","createdAt":"2015-12-14T05:38:08.400Z","releaseDate":"2015-12-14T05:38:08.400Z","project":"54408e54309354080070a896","__v":1},"category":{"sync":{"isSync":false,"url":""},"pages":["566e55c12c1e760d0030c56e","566e55c12c1e760d0030c56f","566e55c12c1e760d0030c570","566e55c12c1e760d0030c571","566e55c12c1e760d0030c572","566e55c12c1e760d0030c573","566e55c12c1e760d0030c574","566e55c12c1e760d0030c575","566e55c12c1e760d0030c576","566e55c12c1e760d0030c577","566e55c12c1e760d0030c578","566e55c12c1e760d0030c579","566e55c12c1e760d0030c57a","566e55c12c1e760d0030c57b","566e55c12c1e760d0030c57c","566e55c12c1e760d0030c57d","566e55c12c1e760d0030c57e","566e55c12c1e760d0030c57f","566e55c12c1e760d0030c580","566e55c12c1e760d0030c581","566e55c12c1e760d0030c582","566e55c12c1e760d0030c583","566e55c12c1e760d0030c584","566e55c12c1e760d0030c585","566e55c12c1e760d0030c586","566e55c12c1e760d0030c587","566e55c12c1e760d0030c588","566e5640c15c8f0d000ee863"],"title":"Documentation","slug":"documentation","order":0,"from_sync":false,"reference":false,"_id":"566e55c12c1e760d0030c56d","__v":2,"createdAt":"2014-10-17T03:34:44.886Z","project":"54408e54309354080070a896","version":"566e55c02c1e760d0030c56c"},"user":"544083bee239230800071bef","__v":0,"project":"54408e54309354080070a896","githubsync":"","createdAt":"2015-05-23T23:11:43.461Z"}

The Windows Situation


# Windows is now supported Previous versions either didn't support Windows or required a manual step beforehand. The difficulty of adding Windows support is explained below. Windows compilation with MVCC is supported by automatically creating the necessary supporting libraries. # Support Approach On Windows, Julia is compiled using gcc in an MSYS2 environment while [node-gyp on Windows](https://github.com/TooTallNate/node-gyp) requires Microsoft Visual Studio. However, a library compiled using gcc on MSYS can be made to work with the binary created by node-gyp if it exports normal C-type symbols. ## From **.DLL** to **.LIB** The library needed by node-gyp is a **.lib** while the library included in the Julia distribution is a **.dll**. But as [described here](http://www.mingw.org/wiki/MSVC_and_MinGW_DLLs), a **.lib** can be created from a **.dll** using the following steps. 1. use dumpbin to export symbols from the dll into a file for example: `dumpbin /exports libjulia.dll > output` 2. transform the output to a **.def** file by removing the extraneous text and placing **EXPORTS** at the top of the time [as described in detail here](https://adrianhenke.wordpress.com/2008/12/05/create-lib-file-from-dll/) 3. Use lib to create a **.lib** from the **.def**. `lib /def:libjulia.def /out:libjulia.lib /machine:x64` 4. Place libjulia.lib in the same directory as libjulia.dll ## Library creation is automatic Both libjulia.lib and openlibm.lib are created and placed in the same directory as libjulia.dll and openlibm.dll which enables linking to be successful.