SAC(단일 할당 C)를 설치하는 동안 오류가 발생했습니다.

SAC(단일 할당 C)를 설치하는 동안 오류가 발생했습니다.

나는 팔로우한다지시하다SAC를 다운로드하여 설치했지만 "make fast" 명령을 실행할 때 다음 오류가 발생했습니다.

maxx@ubuntu:~/sac2c-1.00-beta-linux-x86_64/stdlib$ make fast  
make -f buildfile MODE=lean
cd modules/structures/lib/..; sac2c -v0 -g -O3 -linksetsize 0   ScalarArith.sac -o lib

****ABORT: line 0  file: /usr/include/stdc-predef.h
ABORT: syntax error at pos 36: '3`
ABORT: # 1 "/usr/include/stdc-predef.h" 1 3 4
ABORT:**                                    ^**

*** Compilation failed ***
*** Exit code 1 (Loading SAC program)
*** 1 Error(s), 0 Warning(s)

make[1]: *** [modules/structures/lib/libScalarArithTree.so] Error 1
make: *** [fast] Error 2
maxx@ubuntu:~/sac2c-1.00-beta-linux-x86_64/stdlib$ 

여기서 어떻게 진행해야 할지 잘 모르겠습니다. 제 환경에 특정한 문제일 수도 있지만 매우 구체적인 것 같습니다.

나는 주위를 둘러보면서 gcc에 관한 다음과 같은 기사를 발견했습니다.

전처리기 사전 포함

GCC 전처리기는 이제 전체 번역 단위에 대한 특정 매크로를 정의하는 파일을 사전 포함할 수 있습니다. 이를 통해 구현 가용성을 설명하는 컴파일러 또는 컴파일러+런타임 매크로가 필요한 C99/C11 및 기타 표준의 완전히 일관된 구현이 가능합니다.

Linux에는 사전 포함되어 있습니다.

이 미묘한 변화는 전처리기의 보다 창의적인 사용 중 일부가 이제 다음 진단으로 인해 실패할 수 있음을 의미합니다.

/usr/include/stdc-predef.h:0: error: Syntax error near '3' 
As a workaround, the stdc-predef.h preinclude can be disabled with the use of -ffreestanding. For non C/C++ code, use the pre-processor flag -P.

그런 다음 다시 컴파일하려고 합니다.

make "CPP=gcc -E -ffreestanding" fast

그러나 여전히 운이 없습니다. 어떤 아이디어가 있나요? 아래는 내 스키마 정보입니다

Linux ubuntu 3.13.0-35-generic x86_64 x86_64 x86_64 GNU/Linux

답변1

$HOME/.sac2crc적절한 정의 CPP_STDIN및 /또는 CPP_FILE. 플래그를 추가하여 라인 표시 생성을 억제하도록 파일을 수정 $SAC2CBASE/setup/sac2crc하면 됩니다.-P

sed 's/gcc -E/& -P/' $SAC2CBASE/setup/sac2crc > ~/.sac2crc

관련 정보