在另一个类中包含的类中使用时,来自Boost的C1189错误

时间:2014-08-05 14:15:48

标签: c++ qt boost

我在Qt 5.2中工作,并且有一个类需要使用boost :: asio' sockets。我这个类的标题格式如下:

#include <boost/asio.hpp>
#include <iostream>
#include <list>
#include <QFile>
#include <string>
#include <utility>
#include <vector>
#ifndef MyClass_H
#define MyClass_H

class MyClass
{
public:
    MyClass();

private:
    boost::asio::io_service io;
    boost::asio::ip::tcp::socket socket;
};

#endif // MyClass_H

这个课程本身很好......但是,我需要在另一个类中调用此对象。当我尝试将#include "MyClass.h"添加到另一个文件时,我得到三条相同的错误消息,其中包含

C1189: #error: WinSock.h has already been included

我没有明确地将此文件包含在我的项目中的任何位置,并且我确实重新包含了包含MyClass的类中的任何boost库。我在网上的论坛上发现了很多类似的问题,但似乎解决方案似乎总是让boost / asio的include行首先包含在文件中,我已经有了这样的方式,我仍然得到错误。如果有人可以请求帮助,我真的很感激,谢谢。

0 个答案:

没有答案