Makefile误解了Fedora 22上针对Intel Pin的gcc版本

时间:2015-09-17 23:06:08

标签: c gcc makefile intel fedora

我刚在Fedora 22机器上安装了英特尔Pin,我尝试使用/source/toolsmake中运行makefile。但是,当我运行它时,我会多次重复以下两个错误:

error: #error This kit requires gcc 3.4 or later
error: #error The C++ ABI of your compiler does not match the ABI of the pin kit.

但是,我的gcc版本是

gcc version 5.1.1 20150618 (Red Hat 5.1.1-4) (GCC) 

所以我对正在发生的事情感到有些困惑。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

source/include/pin/compiler_version_check2.H中评论违规行  似乎已经为我做了诀窍:

#if !defined(__GXX_ABI_VERSION) || CC_USED_ABI_VERSION != __GXX_ABI_VERSION
#error The C++ ABI of your compiler does not match the ABI of the pin kit.
#endif

#if CC_USED_ABI_VERSION != __GXX_ABI_VERSION
#error This kit requires gcc 3.4 or later
#endif

答案 1 :(得分:1)

我遇到了同样的问题。 GCC 5.1引入了一种新的ABI,它不再与gcc-3.4 +兼容。我建议你下载更新版本的pin,它与新版本的gcc编译得很好。

另一种解决方案是将宏_GLIBCXX_USE_CXX11_ABI设置为0,以便编译器使用旧的ABI。在PIN目录下有一些Makefile配置,您可以在其中为PIN工具设置CXX标志。

有关gcc的双ABI的更多信息:https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html

可在此处找到较新版本的PIN https://software.intel.com/en-us/articles/pintool-downloads。最新版本发布于2016年3月24日。

答案 2 :(得分:0)

错误:

error: #error The C++ ABI of your compiler does not match the ABI of the pin kit.

可能是完全正确的,但我猜测其他错误消息是一个愚蠢的假设 - 任何ABI不匹配都是因为你的系统的ABI 而不是3.4。但是,这是两个方向,现在,你有一个ABI不匹配,因为当然GCC 5.1很多更新

Fedora杂志的一些背景:GCC 5 in Fedora (What’s an ABI, and what happens when we change it?)