LINK.exe links Common Object File Format (COFF) object files and libraries to create an executable (.exe) file or a dynamic-link library (DLL).
The following table lists options for LINK.exe. For more information about LINK, see:
On the command line, linker options are not case-sensitive—for example, /base and /BASE mean the same thing.
You can use the comment pragma to specify some linker options.
| Option | Purpose | 
|---|---|
| Specifies a response file. | |
| Specifies the alignment of each section. | |
| Specifies that a DLL cannot be bound. | |
| Specifies behavior for manifest lookup. | |
| Specifies whether the app must run within an appcontainer process environment. | |
| Adds the DebuggableAttribute to a managed image. | |
| Creates 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 in an assembly. | |
| Sets a base address for the program. | |
| Sets number of cl.exe threads to use for optimization and code generation when link-time code generation is specified. | |
| Sets the type (IJW, pure, or safe) of a CLR image. | |
| Preserves the last error code of functions that are called through the P/Invoke mechanism. | |
| Specifies the threading attribute to apply to the entry point of your CLR program. | |
| 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 external references are resolved. | |
| Controls the delayed loading of DLLs. | |
| Causes the delayed loading of the specified DLL. | |
| Partially signs an assembly. | |
| Builds a DLL. | |
| Creates a kernel mode driver. | |
| Specifies whether to generate an executable image that can be randomly rebased at load time by using the address space layout randomization (ASLR) feature. | |
| Sets the starting address. | |
| Reports 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 even with unresolved symbols or symbols defined more than once. | |
| Creates an image that can be hot patched. | |
| Sets the size of the heap, in bytes. | |
| Specifies support for high-entropy 64-bit address space layout randomization (ASLR). | |
| Specifies the name of the .idl file and other MIDL output files. | |
| Suppresses output of specified linker warnings. | |
| Prevents the processing of attribute information into an .idl file. | |
| Overrides the default import library name. | |
| Forces symbol references. | |
| Controls incremental linking. | |
| Specifies that the module requires a signature check at load time. | |
| Specifies a key container to sign an assembly. | |
| Specifies a key or key pair to sign an assembly. | |
| Tells the compiler that the application supports addresses larger than two gigabytes | |
| Enables user override of the environmental library path. | |
| Specifies link-time code generation. | |
| Specifies the target platform. | |
| Creates a side-by-side manifest file and optionally embeds it in the binary. | |
| Specifies a <dependentAssembly> section in the manifest file. | |
| Changes the default name of the manifest file. | |
| Specifies a manifest input file for the linker to process and embed in the binary. You can use this option multiple times to specify more than one manifest input file. | |
| Specifies whether User Account Control (UAC) information is embedded in the program manifest. | |
| 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 the specified) default libraries when external references are resolved. | |
| Creates a resource-only DLL. | |
| Suppresses the startup banner. | |
| Marks an executable as verified to be compatible with the 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. | |
| Uses an alternate location to save a PDB file. | |
| Creates a program database (PDB) file that has no private symbols. | |
| Specifies a .pgd file for profile-guided optimizations. | |
| Produces an output file that can be used with the Performance Tools profiler. | |
| Sets the Checksum in the .exe header. | |
| Specifies 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 it is run. | |
| Specifies 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 designed specifically to run under Terminal Server. | |
| Prints linker progress messages. | |
| Assigns a version number. | |
| Enables generation of a Windows Runtime Metadata file. | |
| Specifies the file name for the Windows Runtime Metadata (winmd) output file that's generated by the /WINMD linker option. | |
| Specifies a key or key pair to sign a Windows Runtime Metadata file. | |
| Specifies a key container to sign a Windows Metadata file. | |
| Partially signs a Windows Runtime Metadata (.winmd) file by placing the public key in the winmd file. | |
| Treats linker warnings as errors. | 
For more information, see Compiler-Controlled LINK Options.