Gcc cygwin警告:COMDAT符号与节名称不匹配

Gcc cygwin警告:COMDAT符号与节名称不匹配,gcc,cygwin,Gcc,Cygwin,我在cygwin上使用g++(5.4.0),编译和链接一些cpp文件。编译过程很顺利,但在链接过程中,我会遇到许多错误,如: lib.a: warning: COMDAT symbol '.pdata$_ZnwmPv' does not match section name '.pdata' lib.a: warning: COMDAT symbol '.xdata$_ZnwmPv' does not match section name '.xdata' 我无法理解此消息的含义,也无法解决问

我在cygwin上使用g++(5.4.0),编译和链接一些cpp文件。编译过程很顺利,但在链接过程中,我会遇到许多错误,如:

lib.a: warning: COMDAT symbol '.pdata$_ZnwmPv' does not match section name '.pdata'
lib.a: warning: COMDAT symbol '.xdata$_ZnwmPv' does not match section name '.xdata'
我无法理解此消息的含义,也无法解决问题。我尝试了谷歌搜索,得到了以下链接: 这似乎表明,早在2013年,这个问题就已经得到解决和检查

那么,我的错误消息是否意味着此修复程序在cygwin的gcc中不可用?或者我还需要做些什么来修复/绕过此问题

还有,有没有什么方法可以让我更详细地了解不匹配的具体情况?这可能表明我需要在代码中修复什么

更多细节:警告只出现在cygwin中,而不出现在ubuntu中,因此我也在这个问题中添加了cygwin标记,并在问题中提到了cygwin。只有在我向类中添加以下代码时才会发生。如果addObject2方法被删除,私有成员\u obj2Array被公开,其代码被移动到应用程序中,则警告消失

myObject1.h:

class myObject1: public myParent {
    ... // constructors, etc
    vector<myObject2*> _obj2Array;
    public:
    void addObject2(myObject2* obj2);
}
void myObject1::addObject2(myObject2* obj2) {
   _obj2Array.push_back(obj2);
}