Frage

Ich versuche, ein Open-Source-Projekt zu kompilieren ich heruntergeladen, die anscheinend in VC geschrieben wurden ++ 7.1.

Nach viel Mühe, ein Neuling in C ++ zu sein, habe ich es geschafft zu Download und Update enthält für STLPort, dass die Projekt Anwendungen. Allerdings habe ich so etwas wie 15.000 Fehler bekommen beschweren, dass bestimmte Arten sind nicht definiert. Einige von ihnen sind:

u_int32_t
int64_t
u_int16_t
u_int8_t

Nach einem bisschen googeln, dachte ich heraus, dass sie in C99 zugegeben. Andere Entwickler vor mir haben es geschafft, es mit VC zu kompilieren. Ich bin mit VC 10 though.

Das Projekt ist seit einigen Jahren tot, so dass ich nicht an den Autor kann.

War es hilfreich?

Lösung

Die Visual C ++ Compiler nicht die meisten C99-Funktionen nicht unterstützt.

Wenn Sie die Standard fester Breite Integer-Typen verwenden möchten, müssen Sie sicherstellen, sind Sie <cstdint> und qualifizieren sie mit std:: oder umfassen <stdint.h>.

Der Standard feste Breite unsigned Typnamen sind uint32_t, uint16_t und uint8_t (das heißt, es gibt keine _ zwischen den u und int). Sie können natürlich typedef Ihre eigene Art, wenn Sie wollen (während Sie den Standard typedefs für neuen Code verwenden sollen, müssen Sie Ihre eigene typedef mit Legacy-Code zu interagieren).

Andere Tipps

Es ist ziemlich einfach, diese Art für sich in Visual Studio zu definieren, da sie __int (Bitbreite) Funktionalität bieten.

typedef __int64 int64_t;
typedef unsigned __int32 u_int32_t;
typedef unsigned __int16 u_int16_t;
typedef unsigned __int8 u_int8_t;

Sie benötigen einen kompatiblen C99-Compiler und Bibliotheken zu installieren, und den Punkt der VC ++ 10-Umgebung bei denen.

Jedoch habe ich den einfacheren Weg, vermuten die Build / make-Dateien zu finden und verwendet diese.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top