Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ BOOST\u ASIO\u定义了IOCP的原因或位置?_C++_Boost_Boost Asio - Fatal编程技术网

C++ BOOST\u ASIO\u定义了IOCP的原因或位置?

C++ BOOST\u ASIO\u定义了IOCP的原因或位置?,c++,boost,boost-asio,C++,Boost,Boost Asio,最近,我使用boost asio启动了一个新项目,但我永久性地遇到了一个错误: “SO\u UPDATE\u CONNECT\u CONTEXT”未在此范围内声明。我知道这个错误的意思,但是我在文件socket\u ops.ipp中找不到进入函数complete\u IOCP\u connect范围所需的BOOST\u ASIO\u HAS\u IOCP的定义 我使用的是g++4.8.1,但在版本4.6.2中也出现了一个错误。操作系统是64位的Windows7。我使用带有标签boost-1.55

最近,我使用boost asio启动了一个新项目,但我永久性地遇到了一个错误:
“SO\u UPDATE\u CONNECT\u CONTEXT”未在此范围内声明
。我知道这个错误的意思,但是我在文件
socket\u ops.ipp
中找不到进入函数
complete\u IOCP\u connect
范围所需的
BOOST\u ASIO\u HAS\u IOCP
的定义

我使用的是g++4.8.1,但在版本4.6.2中也出现了一个错误。操作系统是64位的Windows7。我使用带有标签
boost-1.55.0
的存储库版本(git)


我在过去启动了一些项目,其中没有出现此类错误,那么为什么定义了IOCP,或者在哪里定义了
BOOST\u ASIO\u IOCP

BOOST\u ASIO\u HAS\u IOCP
可能是在Windows上配置BOOST时检测到的

如果不是,boost/asio/detail/config.hpp将其定义为:

#if !defined(BOOST_ASIO_HAS_IOCP)
# if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
#  if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400)
#   if !defined(UNDER_CE)
#    if !defined(BOOST_ASIO_DISABLE_IOCP)
#     define BOOST_ASIO_HAS_IOCP 1
#    endif // !defined(BOOST_ASIO_DISABLE_IOCP)
#   endif // !defined(UNDER_CE)
#  endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400)
# endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
#endif // !defined(BOOST_ASIO_HAS_IOCP)
您的boost配置为_WIN32_WINNT的值似乎与构建应用程序时使用的值不同

能否尝试将其定义为0x0501或更高

#define _WIN32_WINNT 0x0501 // _WIN32_WINNT_WINXP

(有些相关的问题)

是的,这对这个错误有帮助,但实际上在此之后,我得到了许多相同类型的新错误:
BOOST\u APPLICATION\u type\u INDEX\u SELECT没有被声明。我的工作机器上有许多配置错误的选项吗?我的意思是,我使用的是git的非接触式boost版本,还尝试了zip版本(版本1.55.0)(除了将boost.application加载到其中)Mmm。让我直说吧,你是不是拒绝了我的答案,因为它不能解决一个你没有告诉任何人的错误?事实上,您甚至没有提到您正在使用外部库(Boost应用程序)来实现此功能。这需要一个新的问题,一个指向下载位置的链接和一个