Compiler-Controlled LINK Options


For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

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