{"_id":"566e55c12c1e760d0030c57c","version":{"_id":"566e55c02c1e760d0030c56c","project":"54408e54309354080070a896","__v":1,"createdAt":"2015-12-14T05:38:08.400Z","releaseDate":"2015-12-14T05:38:08.400Z","categories":["566e55c12c1e760d0030c56d"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"1.2.3","version":"1.2.3"},"category":{"_id":"566e55c12c1e760d0030c56d","__v":2,"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"],"project":"54408e54309354080070a896","version":"566e55c02c1e760d0030c56c","sync":{"url":"","isSync":false},"reference":false,"createdAt":"2014-10-17T03:34:44.886Z","from_sync":false,"order":0,"slug":"documentation","title":"Documentation"},"user":"544083bee239230800071bef","__v":0,"project":"54408e54309354080070a896","updates":[],"next":{"pages":[],"description":""},"createdAt":"2015-05-23T23:11:43.461Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"results":{"codes":[]},"settings":"","auth":"required","params":[],"url":""},"isReference":false,"order":14,"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.","excerpt":"","slug":"the-windows-situation","type":"basic","title":"The Windows Situation"}

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.