# Port from GCC* to the Intel® C++ Compiler Classic

This section describes a basic approach to porting applications from the (GNU Compiler Collection*) GCC C/C++ compilers to the Intel® C++ Compiler Classic. 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 Classic

In many cases, porting applications from gcc to the Intel® C++ Compiler Classic can be as easy as modifying your makefile to invoke the Intel® C++ Compiler Classic (icc) instead of gcc. Using the Intel® C++ Compiler Classic 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 Classic, 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® C++ Compiler Classic Math Library for improved accuracy.

Because the Intel® C++ Compiler Classic is compatible and interoperable with gcc, porting your gcc application to the Intel® C++ Compiler Classic 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 Classic also supports many of the same compiler options, macros, and environment variables you already use in your gcc work.

## Equivalent Macros

The Intel® C++ Compiler Classic is compatible with the predefined GNU* macros.

See http://gcc.gnu.org for a list of compatible predefined macros.

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

Parent topic: Compatibility and Portability

- Modify Your makefile
- Other Considerations

## See Also

Modify Your makefile
Supported Environment Variables
Additional Predefined Macros