Linker Warnings LNK4070 to LNK4099

Linker Tools Warning LNK4070
/OUT:filename directive in .EXP differs from output filename "filename"; ignoring directive
The filename specified in the NAME or LIBRARY statement when the .EXP file was created differs from the output filename that was either assumed by default or specified with the /OUT option. A client program that uses the resulting DLL might encounter problems.

Linker Tools Warning LNK4071
cannot be incrementally linked on subsequent links
LINK found multiple definitions for one or more symbols, but /FORCE or /FORCE:MULTIPLE was used to create an output file regardless of errors. LINK deleted the incremental status (.ILK) file.

Linker Tools Warning LNK4072
section count count exceeds max (number); image may not run
The number of sections (a COFF .EXE or .DLL file is composed of sections, similar to segments) in the output file is greater than the limit that can be handled by the loader.

You can view the names of the sections in your executable file by using the DUMPBIN program with the default /SUMMARY option. See the DUMPBIN Reference for more information. To reduce the number of sections in your executable file:

Linker Tools Warning LNK4073
cannot create map for .ILK file; linking nonincrementally
There was not a large enough contiguous space in shared memory for LINK to create the incremental status (.ILK) file. LINK performed a nonincremental build.

Linker Tools Warning LNK4074
unable to load filename; cannot checksum
The linker tried to load the dynamic-link library filename but could not. A function in filename is used to checksum the executable file. One of the following may be a cause:

Linker Tools Warning LNK4075
ignoring "option1" due to "option2" specification
The option2 specification overrides option1.

Linker Tools Warning LNK4076
invalid incremental status file "filename"; linking nonincrementally
LINK cannot write to the incremental status (.ILK) file. Either filename is corrupt or it is not an incremental linking database. Remove the file and relink.

Linker Tools Warning LNK4077
exports file "filename" used; ignoring other export specifications
The given exports file provides the program's exports. Exports specified by the /EXPORT option or the EXPORTS statement in a .DEF file were ignored.

Linker Tools Warning LNK4078
multiple "section" sections found with different attributes
LINK found two or more sections that have the same name but different attributes. Probably an import library or exports file was created by a previous version of LINK or LIB. Recreate the file and relink.

Linker Tools Warning LNK4079
no write permission for incremental status file "filename"; linking nonincrementally
LINK cannot write to the incremental status (.ILK) file because filename does not have the correct permissions.

Linker Tools Warning LNK4081
insufficient disk space; linking nonincrementally
There is not enough space on disk for LINK to create or write to the incremental status (.ILK) file.

Linker Tools Warning LNK4082
unable to find entrypoint function in module; cannot checksum
The function CheckSumMappedFile() does not exist in IMAGEHLP.DLL.

Linker Tools Warning LNK4083
module "name" does not exist; ignored
The module "name" you gave in your order file does not exist. Check the spelling. For more information on order files, see the /ORDER linker option.

Linker Tools Warning LNK4084
total image size size exceeds max (256MB); image may not run
The application exceeds the limit of 256 megabytes.

Linker Tools Warning LNK4085
more than number comments; skipping exestr
This warning occurs when the linker tool is converting an OMF object to a COFF object. It indicates there are more than 256 comments in the OMF module.

Linker Tools Warning LNK4086
entrypoint 'function' is not __stdcall with 12 bytes of arguments; image may not run
The entry point for a DLL must be __stdcall. Either recompile the function with the /Gz option or specify __stdcall or WINAPI when you define the function.

Linker Tools Warning LNK4087
CONSTANT keyword is obsolete; use DATA
This warning occurs if you use CONSTANT with your exports in a module definition file or on the command line. Use DATA instead.

Linker Tools Warning LNK4088
image being generated due to /FORCE option; image may not run
The linker encountered an error. Normally it deletes the image it created because the image may not run due to the error. Since you used the /FORCE option, however, the linker did not remove the image.

Linker Tools Warning LNK4089
all references to "dynamic-link library" discarded by /OPT:REF
The linker discarded all packaged functions that referenced exports in dynamic-link library. As a result, dynamic-link library and its import library are unneeded.

Linker Tools Warning LNK4090
No IFGLUE relocation in module with branch to glue code "name"
Your object file contained bad relocation information. Recopy or recreate the object file. See Corrupt Object File for more information.

Linker Tools Warning LNK4092
shared section "section" contains relocations; image may not run correctly
The linker emits this warning whenever you have a shared section to warn you of a potentially serious problem. One way to share data between multiple processes is to mark a section as "shared." However, marking a section as shared can cause problems.

Linker Tools Warning LNK4093
Drive/Directory component ignored in "module-definition" statement
Your module-definition (.DEF) file used a statement incorrectly. The LIBRARY or NAME statements cannot contain directory or drive information.

Linker Tools Warning LNK4094
filename is an MS-DOS executable; use EXEHDR to dump it
The DUMPBIN program only works with COFF-format executable files. Use EXEHDR on MS-DOS executables. EXEHDR is included with Visual C++ 1.5.

Linker Tools Warning LNK4095
filename is an NE format executable; use EXEHDR to dump it
The DUMPBIN program only works with COFF-format executable files. Use EXEHDR on NE format executables. EXEHDR is included with Visual C++ 1.5.

Linker Tools Warning LNK4096
/BASE value "number" is invalid for Windows 95; image may not run
The base address you specified is invalid. Windows 95 executable files must have a base address greater than 0x400000. For more information on base addresses, see the /BASE linker option.

Linker Tools Warning LNK4097
duplicate name "name" in order file; using last one
Order files specify the order you want the linker to load your functions. In your order file, a function appears more than once, so the linker ignored all references to it except the last. For more information on order files, see the /ORDER linker option.

Linker Tools Warning LNK4098
defaultlib "library" conflicts with use of other libs; use /NODEFAULTLIB:library
You are trying to link with incompatible libraries.
Note: The run-time libraries now contain directives to prevent mixing different types. You'll receive this warning if you try to use different types or debug and non-debug versions of the run-time library in the same program. For example, if you compiled one file to use one kind of run-time library and another file to use another kind (for example, single-threaded versus multithreaded) and tried to link them, you will get this warning.

The types of the Fortran and C libraries must match. For more information, see Specifying Consistent Library Types.

You can use the linker's /VERBOSE:LIB switch to determine which libraries the linker is searching. If you receive LNK4098 and want to create an executable file that uses, for example, the single-threaded, non-debug run-time libraries, use the /VERBOSE:LIB option to find out which libraries the linker is searching. The linker should print LIBC.LIB and not LIBCMT.LIB, MSVCRT.LIB, LIBCD.LIB, LIBCMTD.LIB, or MSVCRTD.LIB as the libraries searched. You can tell the linker to ignore the the incorrect run-time libraries by typing the incorrect libraries in the Ignore Libraries text box on the Link tab of the Settings dialog box in the visual development environment or by using the /NODEFAULTLIB:library option with LINK for each library you want to ignore. See the /NODEFAULTLIB linker option for more information.

The table below shows which Visual C++ libraries should be ignored depending on which run-time library you want to use.

To use this run-time libraryIgnore these libraries
Single-threaded (libc.lib)libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded (libcmt.lib)libc.lib, msvcrt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Multithreaded using DLL (msvcrt.lib)libc.lib, libcmt.lib, libcd.lib, libcmtd.lib, msvcrtd.lib
Debug Single-threaded (libcd.lib)libc.lib, libcmt.lib, msvcrt.lib, libcmtd.lib, msvcrtd.lib
Debug Multithreaded (libcmtd.lib)libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, msvcrtd.lib
Debug Multithreaded using DLL (msvcrtd.lib)libc.lib, libcmt.lib, msvcrt.lib, libcd.lib, libcmtd.lib

For example, if you received this warning and you want to create an executable file that uses the non-debug, single-threaded version of the run-time libraries, you could use the following options with the linker:
/NODEFAULTLIB:libcmt.lib /NODEFAULTLIB:msvcrt.lib /NODEFAULTLIB:libcd.lib
   /NODEFAULTLIB:libcmtd.lib /NODEFAULTLIB:msvcrtd.lib

Linker Tools Warning LNK4099
PDB "filename" was not found with "object/library" or at "path"; linking object as if no debug info
The linker was unable to find your .PDB file. Copy it into the directory that contains object/library.


Return to Main Linker Error Page