작성자: 슈어소프트테크(주)

관리자: 장한일/공통기술팀

Imported by: 이담호

1. 전처리 에러 메시지 발생

1.1. error: could not open source file "~~~"

  1. #include “filename” 위의 구문에 지정된 filename에 해당하는 파일이 있는 경로가 include 경로 설정에서 누락된 경우에 발생할 수 있습니다. 프로젝트 설정에서 해당 filename이 있는 경로를 찾아서 include 경로에 추가해 주어야 합니다. ‘파일’ 메뉴의 ‘프로젝트 정보’ → ‘빌드’ 항목의 ‘공통 빌드 세팅’의 ‘Include 경로’ 탭에 해당 경로를 추가합니다. 만약 “sub_dir/filename”인 경우 sub_dir 디렉터리가 있는 경로를 include 경로에 추가해야 합니다.
  2. filename이 존재하지 않는 경우에 발생할 수 있습니다. 해당 파일이 환경에 존재하는지, 만약 개발 환경이 설치되어 있는 경우 컴파일이 정상적으로 되는지 확인해주세요.
  3. Predefined 매크로 등 매크로 설정이 사용자 소스에서 의도한 것과 다르게 설정되어 있는 경우 발생할 수 있습니다. 만약 개발 환경이 설치되어 있는 경우 컴파일이 정상적으로 되는지 확인하시고 filename이 존재하지 않는데도 컴파일이 정상적으로 된다면 매크로 조건에 의해 해당 #include “filename” 부분이 유효하지 않은 경우입니다. 매크로 설정을 알맞게 수정해야 합니다. 매크로를 설정하는 방법은 [시스템 매크로 설정 가이드]를 참조하시기 바랍니다.

1.2. error: unrecognized token ~~

  1. C/C++ 소스 코드가 ASCII가 아닌 UNICODE 등으로 인코딩 되어있는 경우 발생합니다. 소스 코드 파일의 인코딩을 ASCII로 변경합니다.

1.3. error: too many arguments in macro invocation

  1. #define으로 선언하는 매크로 함수의 인자 기술이 잘못된 경우 발생합니다. 매크로 선언 시 지정한 인자의 수와 매크로 사용 시 사용하는 인자의 수를 체크합니다. 만약 개발 환경이 설치되어 있는 경우 컴파일이 정상적으로 되는지 확인하시고 컴파일이 가능하다면 고객지원팀([email protected])으로 문의 바랍니다.

1.4. catastrophic error: #error directive: "~~~"

  1. Predefined 매크로 등 매크로 설정이 사용자 소스에서 의도한 것과 다르게 설정되어 있는 경우 발생합니다. 개발 환경이 설치되어 있는 경우 컴파일이 정상적으로 되는지 확인하시고 만약, 컴파일이 정상적으로 된다면 매크로 조건에 의해 해당 #error “~~~” 부분이 유효하지 않은 경우입니다. 매크로 설정을 알맞게 수정해야 합니다. 매크로를 설정하는 방법은 [시스템 매크로 설정 가이드]를 참조하시기 바랍니다.

    #if !defined(_WIN32) && !defined(_MAC)  
    #error ERROR: Only Mac or Win32 targets supported!  
    #endif
    

1.5. error: expected an identifier

  1. #define을 이용한 매크로 선언에서 잘못된 구문을 사용한 경우 발생합니다. 개발 환경이 설치되어 있는 경우 해당 구문이 정상적으로 컴파일 되는지 확인해주시고 만약, 컴파일이 정상적으로 된다면 고객지원팀([email protected])으로 문의 바랍니다. 아래와 같은 유형의 코드가 있는 경우에 발생할 수 있습니다

    #define SOME_MACROS(X, ...) X == __VA_ARGS__;
    

이 코드는 컴파일러에 따라 정상적으로 컴파일 될 수도 있고 정상적으로 컴파일 되지 않을 수도 있습니다.

2.분석 에러 메시지 발생