The optional argument consists of whatever follows immediately within the same command-line token.


This option has no syntactic relations with other options: it does not override any; it is not incompatible with any; it has no prerequisites.

This option is handled entirely within CL. It generates nothing that passes to any compiler module.

However, the /BK option may affect the -il option that CL anyway generates for the front-end, in-between and back-end compiler modules. Specifically, if the pathname argument is given, it becomes the -il argument.


The /BK option is exactly /Bk with the addition of suppressing the front-end C and C++ compilers.

A use for /BK, if not the only use, is to help perform the Compilation and Generating Code stages as separate operations, presumably so that the intermediate files created in the first stage can be inspected (or edited) before proceeding to the next. Thus, run CL with the /Bk and /Zs options, which respectively keep the intermediate files and limit execution to the front-end compilers. Then re-run CL with the /BK option, naming those same intermediate files, to resume where the front end left off.

That the pathname argument is formally optional is presumably an oversight. The best that can happen from omitting it is a fatal error (most likely C1083) from C2 on finding that it has no set of intermediate files with which to resume compilation.