2011-11-16 3 views
0

J'essaie d'installer gcc-2.7.2 après avoir lu les conditions d'installation de Festivalhere. Sur mon poste de travail, j'ai installé gcc 4.4.1. Je rencontre des problèmes en cours d'exécution make. Voici comment je courais make:Installation de gcc-2.7.2 sur une installation existante

Le message d'erreur est le suivant:

decl.c: In function ‘push_class_level_binding’: 
decl.c:3606: error: lvalue required as increment operand 

La ligne incriminée de decl.c est: obstack_ptr_grow (&decl_obstack, x);

RETURNS fonction ci-dessus void. Un regard sur la définition de la fonction dans le fichier obstack.h montre:

#define obstack_ptr_grow(OBSTACK,datum)     \ 
__extension__        \ 
({ struct obstack *__o = (OBSTACK);     \ 
    if (__o->next_free + sizeof (void *) > __o->chunk_limit)  \ 
    _obstack_newchunk (__o, sizeof (void *));    \ 
    if (!__o->alloc_failed)      \ 
    *((void **)__o->next_free)++ = ((void *)datum);   \ 
    (void) 0; }) 

Il n'y a qu'une seule opération d'augmentation qui se passe ici. Je ne suis pas sûr de savoir comment le changer pour que l'erreur disparaisse. Ou est-ce que je cherche au mauvais endroit?

Toute aide est la bienvenue.

P.S: S'il vous plaît laissez-moi savoir si plus d'informations sont nécessaires.

+1

Ne faites pas cela. Essayez de compiler votre code avec un GCC récent. Si nécessaire, corrigez le code du festival. Mais 2.7.2 est un compilateur merdique w.r.t. compilateur GCC 4.6 récent. –

+0

Je l'ai fait. Et fini avec ceci: http://stackoverflow.com/questions/8122478/declaration-of-void-abort-throws-different-exceptions - J'ai essayé à peu près tout et finalement pensé à ré-installer un compilateur que les gars du Festival eux-mêmes suggèrent. – Sriram

+0

Vous pouvez modifier leur code, et au moins supprimer le drapeau -pedantic. –

Répondre