删除 GCC ABI 更改的注释
Posted
技术标签:
【中文标题】删除 GCC ABI 更改的注释【英文标题】:Remove note of GCC ABI change 【发布时间】:2012-12-17 12:01:41 【问题描述】:当我使用 GCC 4.7 编译我的程序时,我得到以下注释:
/usr/include/c++/4.7/backward/binders.h:167:5: note: the ABI of passing structure with complex float member has changed in GCC 4.4 here
有什么办法可以摆脱吗?我试图用谷歌搜索它,但我发现的只是打印注释字符串的 GCC 源代码行。
【问题讨论】:
【参考方案1】:将选项 -Wno-psabi
传递给 GCC。
【讨论】:
【参考方案2】:我收到了同样的信息:
/usr/include/c++/4.8.3/bits/stl_pair.h:276:5: note: the ABI of passing structure with complex float member has changed in GCC 4.4
对于以下代码行:
indices.push_back(make_pair(centreIndex,centre));
其中 centerIndex 是一个整数,而 center 是一个复数浮点数。
为了摆脱错误消息,我将代码更改为:
indices.push_back(pair<int,complex<float> >(centreIndex,centre));
我认为这是一种更好的方法,因为 make_pair 只是这种更直接的创建对的方法的包装。
【讨论】:
以上是关于删除 GCC ABI 更改的注释的主要内容,如果未能解决你的问题,请参考以下文章
为啥只有注释更改的两个程序二进制文件在 gcc 中不完全匹配?
c++ 项目仍然需要 -D_GLIBCXX_USE_CXX11_ABI=0