Building applications from the IDE fail, and a "Error spawning 'vcspawn.exe'. The build could not be performed." message is displayed in the output window when you try to build applications in Visual C++ 6.0


Building applications from the integrated development environment (IDE) may fail, with the following message subsequently displayed in the output window:
Error spawning 'vcspawn.exe'. The build could not be performed.
The message does not identify why the build could not be performed.


There are several known causes for this message:
  • The environment used by the IDE does not have the correct directories to search for such tools as Vcspawn.exe.
  • The ComSpec environment variable may be incorrectly defined.
  • The system's NULL device may be disabled or missing (Microsoft Windows NT only).
Although all of these are valid reasons for a build to fail, Visual C++ does not provide enough information to identify the specific cause of the failure or how to resolve it.


The following are four suggested resolutions:

Resolution 1: Install or re-enable NULL device (Windows NT only)

There are slight variations on the displayed error text. These variations can sometimes help to identify what is causing the problem. If the error text resembles the following, you may have problems opening the NULL device:
Cannot start tool. The system cannot find the file specified. The system cannot find the file specified. Error spawning 'vcspawn.exe'. The build could not be performed.
Use the following steps to check on the NULL device:
  1. From Control Panel, open the Devices manager.
  2. Look for the Null device in the list of devices. If you do not have a Null device, you must reinstall Null.sys.
  3. The Null device should show Status=Started and Startup=System.
  4. To correct the Status setting, select the Null device and click Start.
  5. To correct the Startup setting, select the Null device, click Startup, and then select System.

Resolution 2: Correct the IDE environment

If you have the following error text variation, you probably have errors in the ComSpec definition or the IDE environment, which specifies where to find the tools:
Cannot start tool. The operation completed successfully. Cannot start tool. Error spawning 'vcspawn.exe'. The build could not be performed.
See Resolution 4 below for information about correcting the ComSpec definition. To correct the IDE environment:
  1. From the Tools menu, click Options.
  2. Click the Directories tab, and under Show Directories for, select Executable Files.
  3. The following five directories should be listed in this order: Correct the directory list to point to valid directories:

    1. (Your VC install location)\Common\MSDev98\Bin;
    2. (Your VC install location)\VC98\BIN;
    3. (Your VC install location)\Common\TOOLS;
    4. Your Windows system directory (often this is C:\WINNT\system32)
    5. Your Windows directory (often this is C:\WINNT)
  4. Test these directories by double-clicking them, and then click the ellipses [...]. Alternatively, copy the directory to the clipboard. Then, on the Start menu, click Run, and paste the directory into the Open text box. This method should bring up Windows Explorer with that directory.
  5. To add a new directory, double-click an empty box and then click the ellipses [...].

    NOTE: The "...\MSDev98\Bin" directory contains Vcspawn.exe and should be first in the list.

Resolution 3: Use the system environment

An alternative way of specifying the executable paths is to use the /USEENV argument when starting MSDEV (Visual C++). The command line resembles the following:

This action forces Visual C to use the system environment settings rather than the directories specified in Options under the Tools menu. This will help if the system environment variables are all correct; for example, if you can build successfully from a command prompt.

NOTE: Resolution 2 is usually recommended over using the /USEENV switch. For additional information about a bug that was fixed in Service Pack 3, please click the article number below to view the article in the Microsoft Knowledge Base:
216854 FIX: Running msdev /useenv Once Causes Environment To Be Used Permanently

Resolution 4: Correct the ComSpec environment variable definition

If the paths look correct (see Resolution 2), the problem may be with the ComSpec environment variable. The ComSpec environment variable identifies the command prompt executable. On Windows NT, this usually resembles the following:

On Windows 95 or Windows 98, it typically resembles the following:

To check, set, or change the value of the ComSpec environment variable:
  • On Windows NT:
    1. From the Start menu, point to Settings, then click Control Panel.
    2. Double-click the System icon (this action displays all existing environment variables and their values).
    3. Add or modify the ComSpec variable, as necessary.
  • On Windows 9x:
    1. From the MS-DOS prompt, enter set ComSpec. This action either displays the current value of the ComSpec environment variable, or "Environment Variable ComSpec not defined."
    2. Edit the Autoexec.bat file to modify or add ComSpec to the system as necessary.


Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.
This problem was corrected in Microsoft Visual C++ .NET.


For more information, click the following article numbers to view the articles in the Microsoft Knowledge Base:

189138 PRB: "error spawning empfile.exe" building WINCE application

188720 PRB: Error executing ~vcecho!Compiling