User and Reference Guide for the Intel® C++ Compiler 14.0
The Intel compiler is compatible with most versions of the GNU Compiler Collection (gcc). The release notes contains a list of compatible versions.
C language object files created with the Intel compiler are binary compatible with gcc and C/C++ language library. You can use the Intel compiler or the gcc compiler to pass object files to the linker. However, to correctly pass the Intel libraries to the linker, use the Intel compiler.
The Intel compiler supports many of the language extensions provided by the GNU compilers. See http://www.gnu.org for more information.
Statement expressions are supported, except the following are prohibited inside them:
dynamically-initialized local static variables
local non-POD class definitions
try/catch
The Intel C++ Compiler supports gcc-style inline ASM if the assembler code uses AT&T* System V/386 syntax.
C++ compilers are interoperable if they can link object files and libraries generated by one compiler with object files and libraries generated by the second compiler, and the resulting executable runs successfully. The Intel compiler is highly compatible with the GNU compilers.
The Intel and GNU compilers support the following predefined macros:
__GNUC__
__GNUG__
__GNUC_MINOR__
__GNUC_PATCHLEVEL__
You can specify the -no-gcc option to undefine these macros. If you need gcc interoperability (-cxxlib), do not use the -no-gcc compiler option.
Not defining these macros results in different paths through system header files. These alternate paths may be poorly tested or otherwise incompatible.
The Intel compiler includes improved support for the following open source tools:
GNU Libtool – a script that allows package developers to provide generic shared library support.
Valgrind – a flexible system for debugging and profiling executables running on x86 processors.
GNU Automake – a tool for automatically generating Makefile.ins from files called Makefile.am.