使用Qt编译警告 - 仅限Mac OS X:<class>已经是<class> </class>的朋友</class>

时间:2010-08-10 21:14:52

标签: c++ macos qt compiler-warnings

我在编译Qt项目时收到以下警告,但仅限于使用GCC的Mac OS X.使用MinGW的Windows和使用GCC的Linux不会发出此警告。

/Library/Frameworks/QtCore.framework/Versions/4/Headers/qtextcodec.h:175: warning: 'QCoreXmlStreamWriter' is already a friend of 'QTextEncoder'

为什么会出现这种情况,我该如何摆脱它呢?我是否以不正确的顺序包含某些标题或类似内容?

qtextcodec.h包含在QtCore中,我将其包含在几个头文件中。

如果需要更多信息,请与我们联系。

2 个答案:

答案 0 :(得分:2)

根据Qt问题跟踪器。这是一个错误QTBUG-8243,但没有人提供解决方案。也许浏览他们提到的补丁可能会有所启发。

答案 1 :(得分:1)

Qtextcodec.h

friend class QXmlStreamWriter;
friend class QXmlStreamWriterPrivate;
#if defined(Q_OS_MAC32) || defined(Q_OS_AIX)
friend class QCoreXmlStreamWriter;
friend class QCoreXmlStreamWriterPrivate;
#endif

QCoreXmlStreamWriter似乎只是QXmlStreamWriter的定义(请参阅qxmlstream.h),因此它最终声明与朋友相同的类两次。所以不,我不认为你可以做任何事情,它很可能是一个Qt小虫。