2011-11-16 2 views
0

here 설치 요구 사항을 읽고 gcc-2.7.2를 설치하려고합니다. 내 워크 스테이션에는 gcc 4.4.1이 설치되어 있습니다. make을 실행하는 동안 문제가 발생합니다. 여기에 내가 make를 실행하고 어떻게 다음과 같이기존 설치 위에 gcc-2.7.2 설치

make |& tee make.log

오류 메시지는 다음과 같습니다 decl.c에서

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

기분을 상하게하는 라인은 다음과 같습니다 obstack_ptr_grow (&decl_obstack, x);

위의 기능은 void를 반환합니다. 파일 obstack.h에서 함수 정의에보기는 보여줍니다

#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; }) 

여기에서 일어나고있는 하나의 증분 작업이 있습니다. 오류가 사라지도록 변경하는 방법을 모르겠습니다. 아니면 잘못된 곳을보고 있습니까?

모든 도움을 환영합니다.

추신 : 자세한 정보가 필요하면 알려 주시기 바랍니다.

+1

하지 마십시오. 최근 GCC로 코드를 컴파일 해보십시오. 필요한 경우 축제 코드를 패치하십시오. 그러나 2.7.2는 진절머리 나는 컴파일러입니다. 최근의 GCC 4.6 컴파일러. –

+0

나는 그랬다. 그리고 결국 이것으로 끝났어 : http://stackoverflow.com/questions/8122478/declaration-of-void-abort-throws-different-exceptions - 나는 거의 모든 것을 시도하고 마침내 축제 컴파일러를 다시 컴파일하는 것을 생각했다. 스스로 제안합니다. – Sriram

+0

코드를 편집하고 적어도 -pedantic 플래그를 제거 할 수 있습니다. –

답변

관련 문제