2017-04-26 4 views
1

lazyfoo.net (소스 코드는 페이지 하단의 http://lazyfoo.net/tutorials/SDL/33_file_reading_and_writing/index.php에서 사용 가능)의 SDL 2 자습서 33을 수행하려고하며 컴파일러 오류가 발생합니다. "_Longlong was _Longlong was _Longlong was _Longlong was _Longlong was 이 범위에서 선언되지 않았습니다. " Codeblocks 16.01에서 g ++ 버전 5.3을 사용하고 있습니다. 이 빌드 오류를 해결하려면 어떻게해야합니까?_Longlong이이 범위에서 선언되지 않았습니다.

답변

1

이 같은 오류는 2015 년 jungletek에 의해 https://forums.libsdl.org/viewtopic.php?p=42648에보고 된 예에서 (휴대용하지 코딩)입니다 :

저도 같은 문제에 대한 새로운 스레드에서이 게시, 그것의 슬픈 그 명 인터넷상의 솔루션을 따르지 마십시오.

인용구 : 이것은 MinGW 버그 (MinGL를 최신 버전으로 업데이트)와 Lazy Foo의 코드가있는 버그/오류 (?)의 조합이라고 생각합니다. .

'_Longlong'의 모든 인스턴스를 'long long'으로 변경하면 코드 이 제대로 컴파일되고 실행 파일이 예상대로 수행되는 것 같습니다 ( ). 사람이 어떤 식 으로든 잘못된 해결책에있는 경우 알려 수 있다면, 나는 매우 여전히 학습의 과정이야로 듣고 싶어요. 또한

당신이 적절한 컴파일러 플래그를 사용하여 C++ 11 표준 용으로 컴파일하고 있는지 확인하십시오.

typedef long long _Longlong; 

그리고 _Longlong 너무 소리 :

그래서, 당신은 (모두는 많은 플랫폼에서 64 개 비트의 int입니다) long long_Longlong의 타입 정의와 (_Longlong의 최초 사용 전) 라인을 추가 할 수 있습니다 gcc 컴파일러의 주요 대상이 아닌 WA, Redmond의 something from 사막과 비슷합니다.

관련 문제