私のシステムでboost::asioプログラムをコンパイルしようとして数時間苦労しています(win7、vs2010、boost 1.49)。Boostは適切に構築され、私のvsプロジェクトにリンクされています。boost :: regexを使用してテストを実行しましたが、すべて問題なく動作しました。
コンパイラは2つのヘッダー(in6addr.h、ws2ipdef.h)について文句を言い、約90%がC2146(構文)およびC2079(未定義のクラス/構造/ユニオン名)エラーです。
これらのエラーの多くは、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とwindowsの定義に関連しているように思われるので、適切な定義(WIN32_LEAN_AND_MEAN ..)を使用して、可能な限りすべての方法でそれらを含めようとしました。
スタンドアロンプログラムでwinsock2を実行してみましたが、すべて正常に実行されました。
私の問題はこれと非常に似ているようです(すべてのアドバイス/質問を未解決で試しました):
私はすでに2つのキーボードを壊していて、マウスの残りの部分にぶら下がることを真剣に検討しています。助けてください!
よろしくお願いします。
トーマス
エラーサンプル:
ws2ipdef.h
Erreur 171エラーC2059:erreur de Syntaxe:')' c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 336 1 asioProto Erreur 180エラーC2059:erreur de Syntaxe:')' c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 354 1 asioProto Erreur 189エラーC2059:erreur de Syntaxe:')' c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 372 1 asioProto Erreur 198エラーC2059:erreur de Syntaxe:')' c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 390 1 asioProto Erreur 18エラーC2079:'sockaddr_gen :: Address' available une struct de'sockaddr'nondéfinic:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 75 1 asioProto Erreur 19エラーC2079: 'sockaddr_gen :: AddressIn'utilize une struct de'sockaddr_in'nondéfinic:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 76 1 asioProto Erreur 177 error C2086:' int BOOLEAN': redéfinitionc:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 354 1 asioProto Erreur 186エラーC2086:'int BOOLEAN':redéfinitionc:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 372 1 asioProtoh 354 1 asioProto Erreur 186エラーC2086:'int BOOLEAN':redéfinitionc:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 372 1 asioProtoh 354 1 asioProto Erreur 186エラーC2086:'int BOOLEAN':redéfinitionc:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 372 1 asioProto
in6addr.h
Erreur 7エラーC2143:erreur de構文:absence de';' avant'*' c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ in6addr.h 27 1 asioProto Erreur 1エラーC2146:erreur de構文:absence de';' avant l'identificateur' Byte'c:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ in6addr.h 24 1 asioProto Erreur 4エラー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écificateurdetype manquant --int est prisencomptepardéfaut 。Remarque:C ++ ne prend pas en Charge intpardéfautc:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include\in6addr。h 24 1 asioProto Erreur 3エラーC4430:spécificateurdetypemanquant-int est prisencomptepardéfaut。Remarque:C ++ ne prend pas en Charge intpardéfautc:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ in6addr.h 24 1 asioProto Erreur 5 error C4430:spécificateurdetype manquant --int est pris encomptepardéfaut。Remarque:C ++ ne prend pas en Charge intpardéfautc:\ program files(x86)\ microsoft sdks \ windows \ v7.0a \ include \ in6addr.h 25 1 asioProto