Intel® C++ Compiler XE 13.1 User and Reference Guides
The Intel® C++ Compiler processes C and C++ language source files. Compilation can be roughly divided into these major phases:
preprocessing
semantic parsing
optimization
code generation
linking
The first four phases are performed by the compiler (icl.exe on Windows* OS; icc or icpc on Linux* OS and OS X*).
By default, the compiler automatically invokes the linker (xilink.exe on Windows OS; xild on Linux OS and OS X) to generate the final executable binary.
If you specify /c (Windows OS) or -c (Linux OS and OS X) at compilation time, the compiler will generate only object files. You will need to explicitly invoke linker in order to generate the executable.
If you specify/E /P (Windows OS) or -E -P (Linux OS and OS X) when calling the compiler, the compiler will generate only the preprocessed file with a .i extension.
If you specify /Qipo (Windows OS) or -ipo (Linux OS and OS X) to use multi-file interprocedural optimization (also called Whole Program Optimization), the optimization is done at link time.
Similarly, when you specify /Qprof-gen (Windows OS) or -prof-gen (Linux OS and OS X) to use Profile Guided Optimization, the optimization is done at link time.
In both cases, the Intel® C++ compiler will generate mock object files that only the compiler's linker (xilink.exe and xild) can understand.