Windows Environment Variables for MinGW

Windows Environment Variables for MinGW


Environment variables, as the name implies, are variables that hold directories paths as strings. Environment variables goal is to keep track of important files for the system.

In windows, the most important environment variable is the PATH variable. You can check its content on the command line using the following command:

echo %PATH%

Environment variables can also keep track of important files for the compiler (e.g. MinGW GCC) like header files and static and dynamic library files.

Adding, editing or deleting environment variables


To add, modify or delete an environment variable, youll need to head to Control Panel > System > Advanced System Settings. On the Advanced tab, click on the Environment Variables... button.

The following window will pop out.

List of environment variables

Environment variables are divided in two groups: User variables and System variables. The most important group is the System group. You can create, modify or delete variables using the button New, Edit or Delete respectively.

Lets try editing the Path variable. Click on the Path variable in the System variables group and then click the Edit button.


As you can see, the variable is a list of directory paths separated by the ";" character. The most safe way of adding a new directory is by appending the path as follows:

;C:mingw in

That way there wont be name crashes.

There are many environment variables, lets review the most important ones.

Binary path (PATH)


The PATH (or Path, Windows is case insensitive) variable holds paths to binary files like .exe files, to commands and to .dll files.

Be careful with this variable, do not delete the default path like System32 and so on. Generally, youll only need to append new directory paths to this variable.

For example:

Append ";C:mingw in" to the Path variable

Important note: Do NOT create a new Path or PATH (again, Windows is case insensitive) variable in the system variable group or youll override the default paths and youll be in trouble.

Include paths (CPLUS_INCLUDE_PATH, C_INCLUDE_PATH)


These variable hold the directory paths to header files (like library header files). Important for linking new installed libraries.

Generally youll need to append the path to a library "include" folder.

For example:

Append ";C:mingwinclude" to the CPLUS_INCLUDE_PATH

CPLUS_INCLUDE_PATH and C_INCLUDE_PATH are pretty much the same. When the compiler looks for a header file, it looks in both variables. So having two variables is only useful for the programmer to keep things tidy.

Library path (LIBRARY_PATH)


This variable hold the directory paths to static library (.lib or .a files). This one is also important for linking new libraries.

Generally youll need to append the path to a library "lib" folder.

For example:

Append ";C:mingwlib" to the LIBRARY_PATH


visit to link download