Ich habe seit mehreren Stunden Probleme, ein boost :: asio-Programm auf meinem System zu kompilieren (win7, vs2010, boost 1.49). Boost wurde ordnungsgemäß erstellt und mit meinem vs-Projekt verknüpft. Ich habe einen Testlauf mit boost :: regex gemacht und alles hat gut funktioniert.Compiler-Fehler mit boost :: asio/windows7/Visual Studio 2010
Der Compiler beschweren sich über 2 Header (in6addr.h, ws2ipdef.h), etwa 90% sind C2146 (Syntax) und C2079 (undefinierte Klasse/Struc/Union Name) Fehler.
Eine große Menge dieser Fehler beziehen sich auf die Definition des Windows-Typs (USHORT, ULONG ...) und die Winsock-Definition (SOCKET_ADDRESS, ADDRESS_FAMILY) ist nicht definiert. Eine Probe kann am Ende dieses Beitrags gefunden werden.
Meine umfasst sind:
#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>
Ich habe versucht, sowohl die Datei für Datei Definition enthalten und jene in der vorkompilierte Header zu sammeln.
Da mein Problem und Fenster Definitionen winsock2 Zusammenhang scheint, habe ich versucht, sie auf alle möglichen Weisen mit entsprechenden defineds (WIN32_LEAN_AND_MEAN ..) eine Erklärung, um ohne Erfolg aufzunehmen.
Ich versuchte winsock2 in einem eigenständigen Programm laufen und alles lief gut.
Mein Problem scheint furchtbar ähnlich wie diese (ausprobiert alle Ratschläge/Frage ungelöst):
Ich habe 2-Tastaturen schon brach und ernsthaft in Erwägung ziehen mich mit hängenden was links von meine Maus. Bitte helfen Sie!
Vielen Dank im Voraus für Ihre Zeit.
Thomas
Fehler Beispiel:
ws2ipdef.h
Erreur 171 Fehler C2059: erreur de syntaxe: ')' c: \ program files (x86) \ Microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 336 1 asioProto Erreur 180 Fehler C2059: Error de Syntaxe: ')' c: \ Programme (x86) \ Microsoft sdks \ Windows \ v7.0a \ include \ ws2ipdef.h 354 1 asioP Roto Erreur 189 Fehler C2059: Error de Syntaxe: ')' c: \ Programme (X 86) \ Microsoft Sdks \ Windows \ V7.0a \ include \ ws2ipdef.h 372 1 AsioProto Erreur 198 Fehler C2059: Erreur de Syntaxe : ')' c: \ program files (x86) \ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 390 1 asioProto Erreur 18 Fehler C2079: 'sockaddr_gen :: Adresse' verwendung une struct de 'sockaddr 'non défini c: \ Programmdateien (x86) \ microsoft sdks \ windows \ v7.0a \ include \ ws2ipdef.h 75 1 asioProto Erreur 19 Fehler C2079:' sockaddr_gen :: AddressIn 'verwendet eine Struktur von' sockaddr_in ' nicht défini c: \ Programmdateien (x86) \ Microsoft sdks \ Windows \ v7.0a \ include \ ws2ipdef.h 76 177 1 asioProto Fehler Fehler C2086: 'int BOOLEAN': Neudefinition c: \ Programme (x86) \ Microsoft SDKs \ windows \ V7.0A \ include \ ws2ipdef.h 354 1 186 asioProto Fehler Fehler C2086: ' int BOOLEAN ‚: Neudefinition c: \ Programme (x86) \ Microsoft SDKs \ windows \ V7.0A \ include \ ws2ipdef.h 372 1 asioProto
in6addr.h
Fehler 7 Fehler C2143: Syntaxfehler: nein ';' vor '*' c: \ Programme (x86) \ Microsoft SDKs \ windows \ V7.0A \ include in6addr.h 27 asioProto 1 Fehler 1 Fehler C2146 \: Syntaxfehler: Fehlen von ';' vor 'Byte Kennung c: \ Programme (x86) \ Microsoft SDKs \ windows \ V7.0A \ include \ in6addr.h 24. Januar asioProto Fehler 4 Fehler C2146: Syntaxfehler: Fehlen von'; ' vor ‚c Word-Kennung: \ Programme (x86) \ Microsoft SDKs \ windows \ V7.0A \ include \ in6addr.h 25. Januar 2 asioProto Fehler Fehler C4430: Typspezifizierer fehlt - int in genommen wird Konto standardmäßig. Hinweis: C++ nicht unterstützt Standard durch int c: \ Programme (x86) \ Microsoft sdks windows \ \ V7.0A \ include \ in6addr.h 24. Januar asioProto Fehler 3 Fehler C4430: fehlende Typspezifizierer - int wird durch Standard betrachtet. Hinweis: C++ nicht unterstützt Standard durch int c: \ Programme (x86) \ Microsoft sdks windows \ \ V7.0A \ include \ in6addr.h 24. Januar asioProto Fehler 5 Fehler C4430: fehlende Typspezifizierer - int wird durch Standard betrachtet. Hinweis: C++ nicht unterstützt Standard durch int c: \ Programme (x86) \ Microsoft sdks windows \ \ V7.0A \ include \ in6addr.h 25. Januar asioProto
wo ist die [reproducer] (http://sscce.org/)? Auch wäre es hilfreich, wenn Ihre Compiler-Fehlermeldungen sind in [Englisch] (http://meta.stackexchange.com/a/13684/148504). –
zur Kenntnis genommen für das nächste Mal. Danke. – user1326256