Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.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::asio/windows7/visual studio 2010时出现编译器错误_C++_Visual Studio 2010_Windows 7_Boost Asio - Fatal编程技术网

C++ 使用boost::asio/windows7/visual studio 2010时出现编译器错误

C++ 使用boost::asio/windows7/visual studio 2010时出现编译器错误,c++,visual-studio-2010,windows-7,boost-asio,C++,Visual Studio 2010,Windows 7,Boost Asio,在我的系统(win7、vs2010、boost 1.49)上编译boost::asio程序已经有好几个小时了,我一直在苦苦挣扎。Boost已正确构建并链接到我的vs项目。我用boost::regex进行了一次测试运行,一切正常 编译器抱怨有2个头(in6addr.h、ws2ipdef.h),大约90%是C2146(语法)和C2079(未定义的类/结构/联合名称)错误 大量错误与未定义的windows类型定义(USHORT、ULONG…)和winsock定义(套接字地址、地址族)有关。在这篇文章的

在我的系统(win7、vs2010、boost 1.49)上编译boost::asio程序已经有好几个小时了,我一直在苦苦挣扎。Boost已正确构建并链接到我的vs项目。我用boost::regex进行了一次测试运行,一切正常

编译器抱怨有2个头(in6addr.h、ws2ipdef.h),大约90%是C2146(语法)和C2079(未定义的类/结构/联合名称)错误

大量错误与未定义的windows类型定义(USHORT、ULONG…)和winsock定义(套接字地址、地址族)有关。在这篇文章的末尾可以找到一个样本

我的建议包括:

#pragma once

#include "targetver.h"
#include <boost/asio.hpp>
#include <boost/shared_ptr.hpp>
#include <boost/cstdint.hpp>
#include <boost/bind.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <stdio.h>
#include <tchar.h>
#include <string>
#include <cassert>
#include <vector>
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <map>
#include <sstream>
#pragma一次
#包括“targetver.h”
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
#包括
  • 我尝试了一个文件一个文件地包含定义,并收集这些定义 在预编译头中

  • 鉴于我的问题似乎与winsock2和windows有关 定义时,我尝试使用 适当定义(WIN32_LEAN_和_MEAN..)声明顺序 没用

  • 我试着在一个独立的程序中运行winsock2,结果一切正常

我的问题似乎与此非常相似(尝试了所有未解决的建议/问题):

我已经打破了2个键盘,并认真考虑自己挂在我的鼠标左。请帮忙

提前感谢您抽出时间

托马斯

错误示例:

ws2ipdef.h

Erreur 171错误C2059:Erreur de syntax:“)”c:\program files (x86)\microsoft SDK\windows\v7.0a\include\ws2ipdef.h 336 1 asioProto Erreur 180错误C2059:Erreur de syntax:“)”c:\program files (x86)\microsoft SDK\windows\v7.0a\include\ws2ipdef.h 354 1 asioProto Erreur 189错误C2059:Erreur de syntax:“)”c:\program files (x86)\microsoft SDK\windows\v7.0a\include\ws2ipdef.h 372 1 asioProto Erreur 198错误C2059:Erreur de syntax:“)”c:\program files (x86)\microsoft SDK\windows\v7.0a\include\ws2ipdef.h 390 1 asioProto 错误18错误C2079:“sockaddr_gen::Address”使用非结构化数据 “sockaddr”非défini c:\program files(x86)\microsoft SDK\windows\v7.0a\include\ws2ipdef.h 75 1 asioProto ERRREUR 19错误 C2079:“sockaddr_gen::AddressIn”使用“sockaddr_in”的统一结构 非défini c:\program files(x86)\microsoft SDK\windows\v7.0a\include\ws2ipdef.h 76 1 asioProto ERRREUR 177错误 C2086:“int BOOLEAN”:红色定义c:\program files(x86)\microsoft SDK\windows\v7.0a\include\ws2ipdef.h 354 1 asioProto ERRREUR 186错误 C2086:“int BOOLEAN”:红色定义c:\program files(x86)\microsoft SDK\windows\v7.0a\include\ws2ipdef.h 372 1 asioProto

in6addr.h

错误7错误C2143:语法错误:缺少“;”前卫的 '*'c:\ProgramFiles(x86)\microsoft SDK\windows\v7.0a\include\in6addr.h 27 1 asioProto ERRREUR 1错误 C2146:语法错误:缺少“;”前卫 字节c:\ProgramFiles(x86)\microsoft SDK\windows\v7.0a\include\in6addr.h 24 1 asioProto ERRREUR 4错误 C2146:语法错误:缺少“;”前卫 “Word”c:\program files(x86)\microsoft SDK\windows\v7.0a\include\in6addr.h 25 1 asioProto ERRREUR 2错误 C430:一种新型的智能机 德福。ReMARCK:C+NE损坏电荷 défaut c:\program files(x86)\microsoft SDK\windows\v7.0a\include\in6addr.h 24 1 asioProto ERRREUR 3错误 C430:一种新型的智能机 德福。ReMARCK:C+NE损坏电荷 défaut c:\program files(x86)\microsoft SDK\windows\v7.0a\include\in6addr.h 24 1 asioProto ERRUR 5错误 C430:一种新型的智能机 德福。ReMARCK:C+NE损坏电荷 défaut c:\program files(x86)\microsoft SDK\windows\v7.0a\include\in6addr.h 25 1 asioProto


终于成功了。有点

问题在于用于编译的VS工具集(VS2010上默认为v100)。 当切换到v90或SDK 7.1时,编译ok

不知道为什么

项目属性>常规>平台工具集


火车站在哪里?此外,如果您的编译器错误消息位于。中,这将有助于下次正确地记录。谢谢