Home  /  Documentation  /  Windows Setup

Windows Setup

Surprisingly, development setup on Windows isn't as simple as on Linux, where we have package managers and everything happens with one or two easy commands.

Additional complication comes from the lack of standard system paths for include files and static libraries.

To make things as smooth as possible, we have prepared two downloads that are ready-to-use boilerplates.


The preferred compiler is GCC, on Windows known as MinGW. Node++ making script (src\m.bat) uses it.

MinGW installer can be slightly confusing at first, so if you don't have it yet and want to get straight to the point, you can download it from here:

We recommend to extract it to C:\MinGW and add C:\MinGW\bin to the PATH.

Microsoft compiler can also be used, however GCC has proven to be much easier to work with over the long term.

OpenSSL and MySQL libraries

To enable HTTPS in Node++, OpenSSL library is required.

To enable USERS in Node++, additionally MySQL library is required.

As with the compiler, you can set them up on your own, or use ready-to-go package:

We recommend to extract it to C:\usr. This way it will match Linux setup and will be easier to manage.

There are two directories inside: include and lib, mirroring typical Linux setup.

The package contains OpenSSL 1.1.1c and is compatible with 64-bit MinGW and MySQL 5.7.


You may have to modify your m.bat. Green changes are for OpenSSL and blue for MySQL:

Include path: set CPATH=C:\usr\include;C:\usr\include\mysql Library path: set LIBRARY_PATH=C:\usr\lib\openssl;C:\usr\lib\mysql


In order to be able to execute npp_app, you need the following files in the current directory (as I usually test using t.bat in src, I copy them there:

libcrypto-1_1-x64.dll # copy from \usr\lib\openssl libssl-1_1-x64.dll # copy from \usr\lib\openssl libmysql.dll # copy from \usr\lib\mysql

If you want to connect to a database, you obviously need to have MySQL server somewhere. You can download and install MySQL Server 5.7 locally (for Node++ you just need the plain server, no connectors).

Is something wrong here? Please, let us know! Envelope