ICC抱怨缺少__builtin_ia32_ldmxcsr

时间:2015-08-07 15:34:53

标签: c++ g++ icc

在Linux上使用Intel Composer 15 Update 3编译项目时,我在链接时会得到以下未解析的符号:

undefined reference to `__builtin_ia32_ldmxcsr'
undefined reference to `__builtin_ia32_stmxcsr'

在进行谷歌搜索时,我发现这些功能是用32位版本的g ++构建的,这就是英特尔无法找到它们的原因。首先,我正在使用64位编译器编译64位操作系统;为什么链接器要查找仅在32位中找到的函数?其次,为什么英特尔生成的目标代码正在寻找g ++内置函数?

1 个答案:

答案 0 :(得分:0)

  

首先,我正在使用64位编译器编译64位操作系统;为什么链接器要查找仅在32位中找到的函数?

可能是因为您的某些源代码不恰当地引用了它们。

第一步:确定哪些对象引用了这些内置函数:

nm -A *.o *.a | egrep '__builtin_ia32_ldmxcsr|__builtin_ia32_stmxcsr'

第二步:预处理相应的源以确定引用的来源:

icpc -E -I ... bad_source.cpp
相关问题