Home | Overview | How Do I | FAQ | Details
LINK is a 32-bit tool that links Common Object File Format (COFF) object files and libraries to create a 32-bit executable (.EXE) file or dynamic-link library (DLL).
Following is a comprehensive list of options for LINK.EXE. For information on how to specify an option, see Set Linker Options.
This section also includes information on Compiler-Controlled LINK Options, LINK Input Files, and LINK Output.
| Option | Action |
| /ALIGN:number | Specifies the alignment of each section |
| /BASE:{address | @filename,key} | Sets a base address for the program |
| /COMMENT:["]comment["] | Inserts a comment string into header |
| /DEBUG | Creates debugging information |
| /DEBUGTYPE:CV /DEBUGTYPE:COFF /DEBUGTYPE:BOTH |
Creates particular formats of debugging information |
| /DEF:filename | Passes a module-definition (.DEF) file to the linker |
| /DEFAULTLIB:library | Searches specified library when resolving external references |
| /DELAY | Controls the delayed loading of DLLs |
| /DELAYLOAD | Causes the delayed loading of the specified DLL |
| /DLL | Builds a DLL |
| /DRIVER[:UPONLY] | Creates a Windows NT kernel mode driver |
| /ENTRY:function | Sets the starting address |
| /EXETYPE:DYNAMIC | Builds a virtual device driver |
| /EXPORT | Exports a function |
| /FIXED[:NO] | Creates a program that can be loaded only at its preferred base address |
| /FORCE[:{MULTIPLE|UNRESOLVED}] | Forces link to complete in spite of unresolved or multiply defined symbols |
| /GPSIZE:# | Specifies the size of communal variables for MIPS and Alpha platforms |
| /HEAP:reserve[,commit] | Sets the size of the heap in bytes |
| /IMPLIB:filename | Overrides the default import library name |
| /INCLUDE:symbol | Forces symbol references |
| /INCREMENTAL:{YES|NO} | Controls incremental linking |
| /LARGEADDRESSAWARE | Tells the compiler that the application supports addresses larger than two gigabytes. |
| /LIBPATH:path | Allows the user to override the environmental library path |
| /LINK50COMPAT | Generates import libraries in Visual C++ Version 5.0 format |
| /MACHINE:{IX86|ALPHA|ARM|MIPS|MIPSR41XX|PPC|SH3|SH4} | Specifies the target platform |
| /MAP | Creates a map file |
| /MAPINFO:{EXPORTS|FIXUPS|LINES} | Includes the specified information in the map file |
| /MERGE:from=to | Combines sections |
| /NODEFAULTLIB[:library] | Ignores all (or specified) default libraries when resolving external references |
| /NOENTRY | Creates a resource-only DLL |
| /NOLOGO | Suppresses startup banner |
| /OPT:{REF|NOREF|ICF[,iterations]|NOICF} | Controls LINK optimizations |
| /ORDER:@filename | Places COMDATs into the image in a predetermined order |
| /OUT:filename | Specifies the output file name |
| /PDB:filename | Creates a program database (.PDB) file |
| /PDBTYPE:{con[solidate]|sept[ypes]} | Specifies where to store the Program Database (PDB) debug type information. |
| /PROFILE | Enables profiling (creates a mapfile) |
| /RELEASE | Sets the checksum in the .EXE header |
| /SECTION:name,attributes | Overrides the attributes of a section |
| /STACK:reserve[,commit] | Sets the size of the stack in bytes |
| /STUB:filename | Attaches an MS-DOS stub program to a Win32 program |
| /SUBSYSTEM:{CONSOLE|WINDOWS|NATIVE|POSIX|WINDOWSCE} [,major[.minor] ] | Tells the operating system how to run the .EXE file |
| /SWAPRUN:{NET|CD} | Tells the operating system to copy the linker output to a swap file before running it |
| /VERBOSE[:LIB] | Prints linker progress messages |
| /VERSION:major[.minor] | Assigns a version number |
| /VXD | Creates a virtual device driver (VxD) |
| /WARN[:level] | Specifies warning level |
| /WS:AGGRESSIVE | Aggressively trim process memory |
For related information, see Compiler-Controlled LINK Options.