PRB: Cause of U4004 Error Message

ID: Q66649


The information in this article applies to:
  • Microsoft NMAKE Utility for MS-DOS, versions 1.11, 1.12, 1.13, 1.2, 1.3, 1.4
  • Microsoft NMAKE Utility for OS/2, versions 1.11, 1.12, 1.13, 1.21
  • Microsoft NMAKE Utility for Windows NT, versions 1.4, 1.5


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

Additional query words: 1.10 1.20 1.30 1.40 1.50

Keywords :
Version : MS-DOS:1.11,1.12,1.13,1.2,1.3,1.4; NT:1.4,1.5; OS/2:1.11,1.12,1.13,1.21
Platform : MS-DOS NT OS/2
Issue type :


Last Reviewed: October 29, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.