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; })
여기에서 일어나고있는 하나의 증분 작업이 있습니다. 오류가 사라지도록 변경하는 방법을 모르겠습니다. 아니면 잘못된 곳을보고 있습니까?
모든 도움을 환영합니다.
추신 : 자세한 정보가 필요하면 알려 주시기 바랍니다.
하지 마십시오. 최근 GCC로 코드를 컴파일 해보십시오. 필요한 경우 축제 코드를 패치하십시오. 그러나 2.7.2는 진절머리 나는 컴파일러입니다. 최근의 GCC 4.6 컴파일러. –
나는 그랬다. 그리고 결국 이것으로 끝났어 : http://stackoverflow.com/questions/8122478/declaration-of-void-abort-throws-different-exceptions - 나는 거의 모든 것을 시도하고 마침내 축제 컴파일러를 다시 컴파일하는 것을 생각했다. 스스로 제안합니다. – Sriram
코드를 편집하고 적어도 -pedantic 플래그를 제거 할 수 있습니다. –