我努力编译我的系统上的boost :: asio程序(win7,vs2010,boost 1.49)几个小时后,我挣扎着。 Boost已经正确地建立并与我的项目相关联。我用boost :: regex做了一个测试,一切正常。使用boost :: asio/windows7/visual studio 2010的编译器错误
编译器抱怨2个头(in6addr.h,ws2ipdef.h),大约90%是C2146(语法)和C2079(未定义的类/ struc/union名称)错误。
大量的这些错误都与未定义的windows类型定义(USHORT,ULONG ...)和winsock定义(SOCKET_ADDRESS,ADDRESS_FAMILY)有关。样本可以在这篇文章的末尾找到。
我包括如下:
#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>
我的文件都尝试文件包括定义和预编译的头收拾那些 。
鉴于我的问题似乎WINSOCK2相关和窗户 定义,我想包括他们使用 适当defineds(WIN32_LEAN_AND_MEAN ..)的声明,以 无济于事所有可能的方式。
我试着在一个独立的程序中运行winsock2,一切运行正常。
我的问题似乎非常相似,这一个(试过了所有建议/问题未解决):
我已经打破了2个键盘,认真考虑自己挂带什么离开的我的鼠标。请帮忙!
提前感谢您的时间。
托马斯
错误样品:
ws2ipdef.h
ERREUR 171错误C2059:ERREUR德syntaxe: ')' C:\程序文件 (x86)的\微软sdks \ windows \ v7.0a \ include \ ws2ipdef.h 336 1 asioProto Erreur 180 error C2059:erreur de syntaxe:')'c:\ program files (x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 354 1 asioP roto Erreur 189 error C2059:erreur de syntaxe:')'c:\ program files (x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 372 1 asioProto Erreur 198 error C2059:erreur de syntaxe :')'c:\ program files (x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 390 1 asioProto Erreur 18 error C2079:'sockaddr_gen :: Address'uses une struct de 'sockaddr 'nondefini c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 75 1 asioProto Erreur 19 error C2079:'sockaddr_gen :: AddressIn'uses une struct de'sockaddr_in' nondefini c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef。h 76 1 asioProto Erreur 177错误 C2086:'int BOOLEAN':redéfinitionc:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 354 1 asioProto Erreur 186 error C2086:' INT BOOLEAN”:重新定义C:\程序文件(86)\微软 的SDK \ Windows \ v7.0a \包括\ ws2ipdef.h 372 1 asioProto
in6addr.h
ERREUR 7错误C2143:erreur de syntaxe:absence de';' avant '*'c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ in6addr.h 27 1 asioProto Erreur 1 error C2146:erreur de syntaxe:absence de';' avant l'identificateur 'Byte'c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ in6addr.h 24 1 asioProto Erreur 4 error C2146:erreur de syntaxe:absence de';' avant l'identificateur 'Word'c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ in6addr.h 25 1 asioProto Erreur 2 error C4430:spécificateurde type manquant - int est pris en版权所有,不得转载。注意:C++ ne prend pas en charge int par défautc:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ in6addr.h 24 1 asioProto Erreur 3错误 C4430:spécificateurde type manquant - int est pris en compte par défaut。雷马克:C++ NE出了点PAS烯电荷INT帕 défautC:\程序文件(86)\微软 的SDK \ Windows \ v7.0a \包括\ in6addr.h 24 1 asioProto ERREUR 5错误 C4430:spécificateur德型manquant - int est pris en compte par défaut。雷马克:C++ NE出了点PAS带电荷INT面值 défautC:\ Program Files文件(x86)的\微软的SDK \ WINDOWS \ v7.0a \ \包括25 in6addr.h 1 asioProto
哪里是[再现](http://sscce.org/)?此外,如果您的编译器错误消息位于[英文](http://meta.stackexchange.com/a/13684/148504)中,将会有所帮助。 – 2012-04-11 16:31:27
下次正式登记。谢谢。 – user1326256 2012-04-11 19:55:38