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

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

Language | Intel® Compiler | GCC Compiler
--- | --- | ---
C | icc | gcc
C++ | icpc | g++

### Note

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

## Advantages to Using the Intel® C++ Compiler

In many cases, porting applications from gcc to the Intel® C++ Compiler can be as easy as modifying your makefile to invoke the Intel® C++ Compiler (icc) instead of gcc. Using the Intel® 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® 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® C++ Compiler is compatible and interoperable with gcc, porting your gcc application to the Intel® 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® 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