# Porting from GCC* to the Intel® oneAPI DPC++/C++ Compiler

This section describes a basic approach to porting applications from the (GNU Compiler Collection*) GCC C/C++ compilers to the Intel® oneAPI DPC++/C++ Compiler. These compilers correspond to each other as follows:

Language | Intel® Compiler | GCC Compiler
--- | --- | ---
C | `icx` for C++ or `dpcpp` for DPC++. | gcc
C++ | `icpx` for C++ or `dpcpp` for DPC++. | g++

### Note

Unless otherwise indicated, the term "gcc" refers to both GCC and G++* compilers from the GCC.

## Advantages to Using the Intel® oneAPI DPC++/C++ Compiler

In many cases, porting applications from gcc to the Intel® oneAPI DPC++/C++ Compiler can be as easy as modifying your makefile to invoke the Intel® oneAPI DPC++/C++ Compiler (`icx` for C++ or `dpcpp` for DPC++) instead of gcc. Using the Intel® oneAPI DPC++/C++ Compiler typically improves the performance of your application, especially for those that run on Intel processors. In many cases, your application's performance may also show improvement when running on non-Intel processors. When you compile your application with the Intel® oneAPI DPC++/C++ Compiler, you have access to:

- Compiler options that optimize your code for the latest Intel® architecture processors.

- Advanced profiling tools (PGO) similar to the GNU profiler gprof.

- High-level optimizations (HLO).

- Interprocedural optimization (IPO).

- Intel intrinsic functions that the compiler uses to inline instructions, including various versions of Intel® Streaming SIMD Extensions and Intel® Advanced Vector Extensions.

- Highly-optimized Intel® Math Library for improved accuracy.

Because the Intel® oneAPI DPC++/C++ Compiler is compatible and interoperable with gcc, porting your gcc application to the Intel® oneAPI DPC++/C++ Compiler includes the benefits of binary compatibility. As a result, you should not have to re-build libraries from your gcc applications. The Intel® oneAPI DPC++/C++ Compiler also supports many of the same compiler options, macros, and environment variables you already use in your gcc work.

Product and Performance Information
Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex. Notice revision #20201201

Parent topic: Portability

- Modifying Your makefile
- Equivalent Macros
- Other Considerations

## See Also

Modifying Your makefile
Supported Environment Variables