Compiler-Controlled LINK Options


The new home for Visual Studio documentation is Visual Studio 2017 Documentation on

The latest version of this topic can be found at Compiler-Controlled LINK Options.

The CL compiler automatically calls LINK unless you specify the /c option. CL provides some control over the linker through command-line options and arguments. The following table summarizes the features in CL that affect linking.

CL specificationCL action that affects LINK
Any file name extension other than .c, .cxx, .cpp, or .defPasses a file name as input to LINK
filename.defPasses /DEF:filename.def
/FnumberPasses /STACK:number
/FdfilenamePasses /PDB:filename
/FefilenamePasses /OUT:filename
/FmfilenamePasses /MAP:filename
/GyCreates packaged functions (COMDATs); enables function-level linking
/LDPasses /DLL
/LDdPasses /DLL
/linkPasses remainder of command line to LINK
/MD or /MTPlaces a default library name in the .obj file
/MDd or /MTdPlaces a default library name in the .obj file. Defines the symbol _DEBUG
/nologoPasses /NOLOGO
/ZdPasses /DEBUG
/Zi or /Z7Passes /DEBUG
/ZlOmits default library name from .obj file

For more information, see Compiler Options.

Setting Linker Options
Linker Options