4.3.1  Compiler and Linker Options

The DDK’s BUILD utility uses the settings created by the environments represented by the two build environment icons, the Checked Build Environment and the Free Build Environment, created during the installation process to provide a simple mechanism that can be customized for setting up the build environment. These environments set various environment variables that control the compiler and linker options and definitions used when the BUILD utility uses the makefile.def file. These include the command-line switches that determine the level of debugging symbols stored in the executable files, and the compiler-specific definitions that cause optional sections of code to be included or excluded.

Using the Checked Build Environment sets up the build environment to produce a debugging version of the driver that corresponds to the checked build of Windows NT. Similarly, using the Free Build Environment results in a streamlined version of the driver that corresponds to the free build of Windows NT. When you are building a driver for debugging, use the Checked Build Environment to build a driver with the appropriate symbolic debugging information.

The specific compiler and linker options that are enabled for checked and free builds vary depending on the platform for which you are building the driver. By default the Checked Build Environment will build the driver with CodeView symbolic information which will allow for source level debugging of the device driver. In contrast, the Free Build Environment only enables COFF symbolic debugging information providing minimal symbolic debugging information.