2013-03-31 3 views
7
c:\...random.h|106|error: expected unqualified-id before '__int128' 

Lorsque je compile un programme 32 bits, l'erreur ci-dessus apparaît. J'utilise http://sourceforge.net/projects/mingwbuilds/Erreur __int128 lors de la compilation de 32 bits

Pourquoi? Mon code compilé très bien avec 4.7.2 mais je voulais mettre à jour à 4.8 pour les corrections de bugs et il se débarrasse de la 0 utilisée comme valeur nulle pour les avertissements de pointeur lorsqu'il n'y a pas de zéros.

Plusieurs des corrections de bogues que je veux. Il compile mes x64 très bien sur Windows.

Existe-t-il un moyen de compiler des applications x32?

+1

La réponse courte est non. '__int128' est destiné aux systèmes 64 bits. – Mysticial

+0

: S Mais mon code n'utilise pas __int128. Le compilateur peut compiler à la fois x32 et x64: S Le type le plus élevé que j'ai utilisé était std :: uint32_t et std :: size_t – Brandon

+3

Oh ... on dirait que votre installation est alors boguée. – Mysticial

Répondre

5

__int128 est protégé par

! Défini (STRICT_ANSI) & & défini (_GLIBCXX_USE_INT128)

Ainsi, vous pouvez soit utiliser -ansi (dans le cas où votre code est strictement ansi plainte C++), j'ai fait face à des erreurs dans l'éditeur de liens en raison du fait que l'éditeur de liens incapable de trouver les bibliothèques 32 bits.

_GLIBCXX_USE_INT128

est défini dans "lib/gcc/x86_64-w64-mingw32/4.8.1/include/C++/x86_64-w64-mingw32/bits/C++ config.h" ce que je suis assez sûr a été généré par l'autoconfigure basé sur le système les chaînes d'outils sont construites.

Vous feriez mieux de télécharger la version 32 bits sur le paquet mingw gcc (binary) et de les installer aussi.

Questions connexes