我正在尝试使用ICC编译代码并面临错误:
/opt/intel/composer_xe_2013.2.146/compiler/include/xmmintrin.h(82): error:
linkage specification is incompatible with previous "_mm_malloc" (declared at
line 38 of "/usr/lib/gcc/x86_64-redhat-linux/4.4.7/include/mm_malloc.h")
extern void* __ICL_INTRINCC _mm_malloc(size_t, size_t);
看起来像ICC和GCC冲突.但我无法从$PATH中排除GCC.如何解决这种困惑?
解决方法:
问题出在我编译的代码中.
我们包括malloc头,这对ICC和GCC是不同的.还有GCC标题名称.
解决方案是:
#if defined(__INTEL_COMPILER)
#include <malloc.h>
#else
#include <mm_malloc.h>
#endif // defined(__GNUC__)