发布
社区首页 >问答首页 >Makefile误解了Fedora 22上英特尔引脚的gcc版本

Makefile误解了Fedora 22上英特尔引脚的gcc版本
EN

Stack Overflow用户
提问于 2015-09-18 07:06:08
回答 3查看 3.2K关注 0票数 0

我刚刚在我的Fedora22机器上安装了Intel Pin,并且我尝试使用make/source/tools中运行makefile。但是,当我运行它时,我多次得到以下两个错误:

代码语言:javascript
代码运行次数:0
复制
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版本是

代码语言:javascript
代码运行次数:0
复制
gcc version 5.1.1 20150618 (Red Hat 5.1.1-4) (GCC) 

所以我对发生了什么感到有点困惑。我该怎么解决这个问题?

EN

回答 3

Stack Overflow用户

发布于 2015-12-13 08:37:44

注释掉source/include/pin/compiler_version_check2.H中令人不快的代码行似乎帮了我大忙:

代码语言:javascript
代码运行次数:0
复制
#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

代码语言:javascript
代码运行次数:0
复制
#if CC_USED_ABI_VERSION != __GXX_ABI_VERSION
#error This kit requires gcc 3.4 or later
#endif
票数 3
EN

Stack Overflow用户

发布于 2016-05-18 21:45:03

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

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

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

更新版本的个人识别码可以在这里找到https://software.intel.com/en-us/articles/pintool-downloads。最新版本发布于2016年3月24日。

票数 2
EN

Stack Overflow用户

发布于 2015-09-22 01:10:09

此错误:

代码语言:javascript
代码运行次数:0
复制
error: #error The C++ ABI of your compiler does not match the ABI of the pin kit.

可能是完全正确的,但我猜另一个错误消息做了一个愚蠢的假设-任何ABI不匹配是因为您的系统具有早于3.4的ABI。但是,这是双向的,现在,你有一个ABI不匹配,因为当然,GCC 5.1要新得多。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32641328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档