PRB: NMAKE Runs But Does Not Produce OBJ and EXE Files

Last reviewed: July 17, 1997
Article ID: Q49502
1.01 1.11 1.12 1.13 1.20 1.30 1.40 | 1.01 1.11 1.21
MS-DOS                             | OS/2
kbtool kbprb

The information in this article applies to:

  • Microsoft NMAKE Utility for MS-DOS, versions 1.01, 1.11, 1.12, 1.13, 1.2, 1.3, and 1.4
  • Microsoft NMAKE Utility for OS/2, versions 1.01, 1.11, and 1.21

SYMPTOMS

When the NMAKE utility processes a makefile, even though no warnings occur and the compiler appears to execute properly, no OBJ or EXE file is created. When the MAKE utility processes the same makefile, the following messages appear on the screen:

   warning U4000: Target does not exist.
   warning U4001: Dependent does not exist; Target not built.

NMAKE may generate the following

   warning D4021 : no action performed

CAUSE

This problem can occur when extra characters appear at the end of a line in the makefile.

RESOLUTION

Modify the makefile to remove the unexpected trailing characters.

MORE INFORMATION

The following makefile demonstrates this problem. To address this problem, remove the semicolon from the end of the CL command.

Sample Makefile

file.obj: file.c    # Error: do not use semicolon with CL command
   CL /c /Lp file.c;

file.exe: file.obj # OK: LINK command accepts semicolon
   LINK file;


Additional reference words: 1.20 1.30 1.40
KBCategory: kbtool kbprb
KBSubcategory: NmakeIss
Keywords : kb16bitonly


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: July 17, 1997
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.