WinSock.h已经包含了Boost Windows Qt
error WinSock.h has already been included Boost Windows Qt
我是在Qt creator上使用boost lib开发一个应用程序,我的平台是Windows8 MSVC2013 64。
我有两个类在每个我使用boost头,
现在我需要使用这个类,当我从另一个源文件中包含这些类头文件时,我得到错误
error WinSock.h has already been included
在我的第一个类中,我添加了像
这样的boost头#define WIN32_LEAN_AND_MEAN
#include <boost/asio.hpp>
#include <boost/asio/deadline_timer.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/read_until.hpp>
#include <boost/bind.hpp>
#include <boost/asio/streambuf.hpp>
#include <boost/asio/write.hpp>
#include <boost/asio/read.hpp>
#include <boost/asio/placeholders.hpp>
#include <boost/foreach.hpp>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
#include <boost/foreach.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/thread_time.hpp>
#include <boost/interprocess/ipc/message_queue.hpp>
#include <boost/interprocess/sync/interprocess_semaphore.hpp>
#include <boost/bind.hpp>
#include <boost/cstdint.hpp>
#include <boost/circular_buffer.hpp>
#include <boost/format.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/classification.hpp>
在第二类中,我以同样的方式使用了标题
#define WIN32_LEAN_AND_MEAN
#include <iostream>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>
#include <boost/foreach.hpp>
#include <boost/thread/thread.hpp>
#include <boost/thread/thread_time.hpp>
#include <boost/interprocess/sync/interprocess_semaphore.hpp>
#include <boost/interprocess/ipc/message_queue.hpp>
#include <boost/asio/deadline_timer.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/read_until.hpp>
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/asio/streambuf.hpp>
#include <boost/asio/write.hpp>
#include <boost/asio/read.hpp>
#include <boost/bind.hpp>
#include <iostream>
#include <boost/asio/placeholders.hpp>
#include <fstream>
#include <boost/cstdint.hpp>
#include <boost/circular_buffer.hpp>
#include <boost/format.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/algorithm/string/classification.hpp>
我已经在这里找到了答案Boost::asio winsock和winsock 2的兼容性问题,但我仍然有问题。
编辑:我的第二个类内部使用第一个类头,这是像多次包括boost头的原因吗?
我已经用
包围了boost头include#ifndef class_obj__1
#define class_obj__1
//boost headers
//boost headers
#endif
任何帮助都将不胜感激。
谢谢哈里斯
将#define WIN32_LEAN_AND_MEAN
移动到g++命令行参数列表为-DWIN32_LEAN_AND_MEAN
。这对我有帮助。
还有一件事帮助了我,那就是重新排序#include
指令,把boost
包含在所有其他指令之前。
相关文章:
- 如何在 Linux for Windows 上通过 MinGW 构建静态 ICU 的 Boost
- CMake 在 Windows 上的自定义位置上找不到 Boost
- 在 Julia 中使用 boost 库和 Windows 上的 Cxx.jl
- Boost::process on Windows - with MinGW?
- 在 Windows 中使用 boost::p rogram_options 从命令行参数读取 Unicode 字符
- 在Windows 10上使用Visual Studio 2019的Boost 1.71.0库出现错误
- 在 Windows 10 上安装 Boost 时遇到问题
- Build Boost Regex for Windows VS2013
- boost::stacktrace on Windows MSVS 2017
- boost zlib filter 在 Windows 中不起作用
- 如何将Windows GUID转换为boost::uuid?
- C++ Boost:在Windows中对boost::system::generic_category()的未定义引用
- 无法在Windows中找到来自cmake的MySQL和Boost包含/库
- 在 Windows 上使用 Boost python3 和 numpy3 库时,VS2015 中LNK2019未解析的外
- 无法在 Windows 上使用英特尔编译器编译示例 boost::多精度
- 在 Windows 中使用 boost::asio 实现最佳缓冲区大小
- 仅使用boost.datetime在Windows上有错误
- Boost, Windows, and QtCreator
- 简单的客户端/服务器在传输中丢失线路(boost/Windows)
- WinSock.h已经包含了Boost Windows Qt