Sunday, October 7, 2012

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, you'll 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.

Let's 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\bin

That way there won't be name crashes.

There are many environment variables, let's 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, you'll only need to append new directory paths to this variable.

For example:

Append ";C:\mingw\bin" 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 you'll override the default paths and you'll 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 you'll need to append the path to a library "include" folder.

For example:

Append ";C:\mingw\include" 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 you'll need to append the path to a library "lib" folder.

For example:

Append ";C:\mingw\lib" to the LIBRARY_PATH

2 comments:

  1. This comment has been removed by the author.

    ReplyDelete
  2. One more technique to avoid being scammed as you buy online would be choosing to deal with those retailers who have been doing business for a while.
    website here

    ReplyDelete