[c] 오류 : 알 수없는 유형 이름 ‘bool’

소스 코드를 다운로드하고 스캐너 파일을 컴파일하고 싶었습니다. 다음 오류가 발생합니다.

그리고 다른 컴파일러를 사용하여 컴파일하려고했지만 다른 오류가 나타났습니다.

내 OS는 3.0-ARCH인데 왜 이런 일이 발생했는지 모르겠습니다. 오류를 어떻게 수정합니까?



답변

C90은 부울 데이터 유형을 지원하지 않습니다.

C99에는 다음이 포함됩니다.


답변

C99는 있습니다.

컴파일러가 C99를 지원하지 않는 경우 직접 정의 할 수 있습니다.

(그러나이 정의 는 유형에 대한 ABI 를 변경 bool하므로 올바르게 정의 된 상태로 컴파일 된 외부 라이브러리에 대한 링크는 bool진단하기 어려운 런타임 오류를 유발할 수 있습니다.)


답변

다음을 추가하십시오.


답변

코드 어딘가에 한 줄이 #include <string>있습니다. 이것은 그 자체로 프로그램이 C ++로 작성되었음을 알려줍니다. 따라서 사용하는 g++것이 gcc.

누락 된 라이브러리의 경우 : 파일 시스템에서 libl.so. locate명령을 사용 하거나 try /usr/lib,, /usr/local/lib/opt/flex/lib사용하거나 brute-force를 사용하십시오 find / | grep /libl.

파일을 찾으면 컴파일러 명령 줄에 디렉토리를 추가해야합니다. 예를 들면 다음과 같습니다.


답변