Linker Options
Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

Linker Options

LINK is a tool that links Common Object File Format (COFF) object files and libraries to create a executable (.exe) file or dynamic-link library (DLL).

The table below is a comprehensive list of options for LINK.exe. This section also includes information on:

Linker options specified on the command line are not case sensitive: /base and /BASE mean the same thing.

You can specify some linker options via the comment pragma.

Option Purpose


Specifies a response file


Specifies the alignment of each section


Specifies that a DLL cannot be bound


Specifies behavior for manifest lookup.


Adds the DebuggableAttribute to a managed image.


Create a link to a managed resource.


Specifies that a Microsoft Intermediate Language (MSIL) module should be imported into the assembly


Embeds a managed resource file to an assembly


Sets a base address for the program


Sets the type (IJW, pure, or safe) of a CLR image.


Preserves the last error code of functions called through the P/Invoke mechanism.


Specify which threading attribute you want applied to the entry point of your CLR program.


/CLRUNMANAGEDCODECHECK specifies whether the linker will apply the SuppressUnmanagedCodeSecurity attribute to linker-generated PInvoke stubs that call from managed code into native DLLs.


Creates debugging information


Passes a module-definition (.def) file to the linker


Searches the specified library when resolving external references


Controls the delayed loading of DLLs


Causes the delayed loading of the specified DLL


Partially sign an assembly.


Builds a DLL


Creates a Windows NT kernel mode driver


Sets the starting address


Report internal linker errors to Microsoft.


Exports a function


Creates a program that can be loaded only at its preferred base address


Forces a link to complete in spite of unresolved or symbols defined more than once


Creates a hotpatchable image.


Sets the size of the heap in bytes


Specifies the name of the .idl file and other MIDL output files


Prevents processing attribute information into an .idl file


Overrides the default import library name


Forces symbol references


Controls incremental linking


Specify a key container to sign an assembly.


Specify key or key pair to sign an assembly.


Tells the compiler that the application supports addresses larger than two gigabytes


Allows the user to override the environmental library path


Specifies link-time code generation


Specifies the target platform


Create a side-by-side manifest file.


Specify a <dependentAssembly> section in your manifest file.

/MANIFESTFILE (Name Manifest File)

Change the default name of the manifest file.


Creates a mapfile


Includes the specified information in the mapfile


Combines sections


Specifies MIDL command line options


Suppresses the creation of a .NET Framework assembly


Ignores all (or specified) default libraries when resolving external references


Creates a resource-only DLL


Suppresses startup banner


Marks an executable as having been tested to be compatible with Windows Data Execution Prevention feature.


Controls LINK optimizations


Places COMDATs into the image in a predetermined order


Specifies the output file name


Creates a program database (PDB) file


Creates a program database (PDB) file with no private symbols


Specify .pgd file for profile guided optionizations.


Produces an output file that can be used with the Performance Tools profiler.


Sets the Checksum in the .exe header


Specify that the image will contain a table of safe exception handlers.


Overrides the attributes of a section


Sets the size of the stack in bytes


Attaches an MS-DOS stub program to a Win32 program


Tells the operating system how to run the .exe file


Tells the operating system to copy the linker output to a swap file before running it


Allows you to specify the resource ID of the linker-generated type library


Specifies the name of the .tlb file and other MIDL output files


Creates an application that is specifically designed to run under Terminal Server


Prints linker progress messages


Assigns a version number


Treat linker warnings as errors.

For related information, see Compiler-Controlled LINK Options.

© 2016 Microsoft