2012-04-11 12 views
0

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):

http://www.developpez.net/forums/d585193/c-cpp/cpp/bibliotheques/boost/asio-erreur-syntaxe-specificateur-type-manquant-d/

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

+0

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). –

+0

zur Kenntnis genommen für das nächste Mal. Danke. – user1326256

Antwort

0

Schließlich gelang es zu nageln . Art.

Problem mit dem VS toolset für die Kompilierung verwendet log (standardmäßig ist V100 VS2010). Im eingeschalteten Zustand Gold v90 SDK 7.1 tun, kompiliert ok.

nicht sicher, warum though.

Projekteigenschaften> Allgemein> Plattform Toolset

C++ Native Multi-Targeting