FIX: Linker May Cause L5000 with CodeView Information (102920)



The information in this article applies to:

  • Microsoft LINK for MS-DOS 5.5
  • Microsoft LINK for MS-DOS 5.6

This article was previously published under Q102920

SYMPTOMS

Linking a large number of object modules and libraries with the /CO option for CodeView information may generate the following error message:
LINK : fatal error L5000:

CAUSE

This problem is typically caused when the linker, LINK.EXE, gets to the CodeView information packing stage while generating a large .EXE file.

RESOLUTION

Use one or more of the following to work around this problem:
  • Link without the /CO option if the application doesn't need to be debugged.
  • Link with the /CO:NOCVPACK option to create an .EXE file with unpacked CodeView information, and then run CVPACK.EXE separately on the .EXE. The CVPACK.EXE utility in the \MSVC\BIN directory by default. For more information about CVPACK, select the "Tech Notes" icon in your Visual C++ Program Manager group. You'll see a help button that reads "Using CVPACK."
  • Reduce the amount of CodeView information for the application by compiling only the essential modules with the /Zi option; compile the rest with the /Zd option.
  • Avoid linking OLDNAMES.LIB last.
  • If using the /LI linker option, remove it.
  • Assign the TMP environment variable a valid hard drive and directory with a large amount of disk space (preferably not a RAM drive).

STATUS

Microsoft has confirmed this to be a problem in the versions of the linker given at the beginning of this article. Some causes of this problem have been fixed in Visual C++ 1.52, but in some instances, you may still need to use /CO:NOCVPACK and then use cvpack on the exe.

Modification Type:MajorLast Reviewed:9/30/2003
Keywords:kb16bitonly kbfix KB102920