PRB: Cause of U4004 Error Message (66649)



The information in this article applies to:

  • Microsoft NMAKE Utility for MS-DOS 1.11
  • Microsoft NMAKE Utility for MS-DOS 1.12
  • Microsoft NMAKE Utility for MS-DOS 1.13
  • Microsoft NMAKE Utility for MS-DOS 1.2
  • Microsoft NMAKE Utility for MS-DOS 1.3
  • Microsoft NMAKE Utility for MS-DOS 1.4
  • Microsoft NMAKE Utility for OS/2 1.11
  • Microsoft NMAKE Utility for OS/2 1.12
  • Microsoft NMAKE Utility for OS/2 1.13
  • Microsoft NMAKE Utility for OS/2 1.21
  • Microsoft NMAKE Utility for Windows NT 1.4
  • Microsoft NMAKE Utility for Windows NT 1.5

This article was previously published under Q66649

SYMPTOMS

An attempt to use a makefile fails and NMAKE generates the following message:
warning U4004: too many rules for target 'test.exe'

CAUSE

The makefile contains more than one build dependency block for one target and the makefile does not use the multiple dependency block separator, a double colon (::).

RESOLUTION

To eliminate the error, modify the makefile to use the multiple dependency block separator.

MORE INFORMATION

The following makefile example demonstrates this warning.

Sample Makefile 1

all: test.exe

test.exe : test.c

cl test.c

test.exe : test.res

rc test.res

The following makefile example works as expected.

Sample Makefile 2

all: test.exe

test.exe :: test.c # Double colons are used here

cl test.c

test.exe :: test.res # Double colons are used here

rc test.res


Modification Type:MajorLast Reviewed:12/1/2003
Keywords:KB66649