c – 两个编译器彼此不喜欢

我正在尝试使用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__)
上一篇:c – 具有多个主电源和共享功能的CMake编译项目


下一篇:安卓报错显示详细Error:Execution failed for task ':app:compileDebugKotlin'. > Compilation error.