4 votes

Est-il possible de réactiver le type `uint` dans g++ 4.7+ ?

J'ai une masse de code que j'essaie de convertir de la version 4.2.2 de g++ à la version 4.7.2. Dans les versions 4.2.2 et antérieures, il semble que uint a été défini comme suit unsigned int . Je sais que ce n'est pas un standard c++ et que les vrais hommes écrivent le standard ISO C++, mais je me demandais s'il y avait un drapeau ou une sorte de moyen pour que g++ accepte uint sans modifier tous les fichiers sources. Puis-je modifier CPPFLAGS ou ajouter un interrupteur à la ligne d'exécution de g++ ? Mes recherches sur Google n'ont rien donné. J'ai des fichiers sources provenant d'un autre groupe au travail et j'aimerais accepter leurs noms. uint transgressions.

par exemple

#include <iostream>
#include <fstream>
#include <assert.h>
using namespace std;
int main(void) {
    uint foo = 0xdeadbeef;
    cout<<hex<<foo<<endl;
}

rendements :

/tmp/rbroger1/gcc_update rbroger1 @ plxc25804 
% /usr/intel/pkgs/gcc/4.2.2/bin/g++ ~/tmp.cc && ./a.out
deadbeef
/tmp/rbroger1/gcc_update rbroger1 @ plxc25804
% /usr/intel/pkgs/gcc/4.7.2/bin/g++ ~/tmp.cc && ./a.out
/nfs/pdx/home/rbroger1/tmp.cc: In function 'int main()':
/nfs/pdx/home/rbroger1/tmp.cc:8:5: error: 'uint' was not declared in this scope
/nfs/pdx/home/rbroger1/tmp.cc:8:10: error: expected ';' before 'foo'
/nfs/pdx/home/rbroger1/tmp.cc:9:16: error: 'foo' was not declared in this scope

9voto

Vous pouvez ajouter un -include a_file_where_there_is_typedef_to_uint.h drapeau pour g++

Extrait du manuel

-include file

Traiter le fichier comme si #include "file" apparaissait comme la première ligne du fichier source principal. Cependant, le premier répertoire recherché pour fichier est le répertoire de travail du préprocesseur au lieu du répertoire contenant le fichier source principal. S'il n'y est pas trouvé, il est recherché dans le reste de la chaîne de recherche #include "..." comme d'habitude.

Si plusieurs options -include sont données, les fichiers sont inclus dans l'ordre où ils apparaissent sur la ligne de commande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X