# Compilation Phases

The Intel® oneAPI DPC++/C++ Compiler processes C/C++ and DPC++ language source files. Compilation can be divided into these major phases:

- Preprocessing

- Semantic parsing

- Optimization

- Code generation

- Linking

The first four phases are performed by the compiler:

Example
    //# Linux*

    //# C++
    icx or icpx
    //#DPC++
    dpcpp
    //# Windows*

    //# C++
    icx or icpx
    //#DPC++
    dpcpp-cl

If you specify the c option at compilation time, the compiler will generate only object files. You will need to explicitly invoke linker in order to generate the executable.

This content is specific to C++; it does not apply to DPC++. If you are compiling for a 32-bit target, you may either set the environment variable, `INTEL_TARGET_ARCH_IA32`, or use the [Q]m32 option. If you used the c option you will need to pass the [Q]m32 option to the linker as well.

If you specify the E and P options when calling the compiler, the compiler will only generate the preprocessed file with an .i extension.

Parent topic: Compilation

## See Also

c compiler option
E compiler option
P compiler option