我有一个奇怪的问题,当我将 QtNetwork 模块中的任何内容包含到我的 Qt Desktop 应用程序中时,我得到了一堆错误,甚至在使用包含的任何内容之前。例如,如果我包含 QtNetwork/QHostAddress,则会收到以下错误:
..\..\QtSDK\Desktop\Qt\4.8.1\mingw\include/QtNetwork/qabstractsocket.h:66: error: template with C linkage
..\..\QtSDK\Desktop\Qt\4.8.1\mingw\include/QtNetwork/qabstractsocket.h:253: error: declaration of C function 'QDebug operator<<(QDebug, QAbstractSocket::SocketState)' conflicts with
..\..\QtSDK\Desktop\Qt\4.8.1\mingw\include/QtNetwork/qabstractsocket.h:252: error: previous declaration 'QDebug operator<<(QDebug, QAbstractSocket::SocketError)' here
..\..\QtSDK\Desktop\Qt\4.8.1\mingw\include/QtNetwork/qhostaddress.h:141: error: declaration of C function 'QDebug operator<<(QDebug, const QHostAddress&)' conflicts with
..\..\QtSDK\Desktop\Qt\4.8.1\mingw\include/QtNetwork/qabstractsocket.h:253: error: previous declaration 'QDebug operator<<(QDebug, QAbstractSocket::SocketState)' here
..\..\QtSDK\Desktop\Qt\4.8.1\mingw\include/QtNetwork/qhostaddress.h:148: error: declaration of C function 'QDataStream& operator<<(QDataStream&, const QHostAddress&)' conflicts with
..\..\QtSDK\Desktop\Qt\4.8.1\mingw\include/QtNetwork/qhostaddress.h:141: error: previous declaration 'QDebug operator<<(QDebug, const QHostAddress&)' here
当然,我添加了这一行
Qt += network
到我的.pro
文件,所以这不是问题。opengl
可以毫无问题地包含另一个模块 ( )。
我已经通过创建一个除了 QtNetwork 之外什么都不做的虚拟项目来确保我的 Qt 安装本身没有任何问题。它工作得很好。
所以,我的项目一定有问题,但由于错误消息只出现在这种特殊情况下,我不知道要为你提供什么信息。
我只能说,该程序之前是纯 C 代码,现在使用 Qt 将其更改为 C++,因此其中仍有混合。但这似乎不是问题,只要不包括 QtNetwork。
有关如何解决此问题或与此问题相关的信息的任何想法?