Objective-C 코딩 중 겪은 문제와 해결

2023년 1월 10일 수정

≡ 목차 (Table of Contents)

Unknown type name 'FOUNDATIONEXPORT'

예를 들어 아래와 같은 코드를 빌드하는 경우다.

FOUNDATION_EXPORT const unsigned char *ModuleVersion;

이 경우 아래와 같은 식의 제목과 동일한 오류를 만날 수 있다.

Unknown type name 'FOUNDATION_EXPORT'

메시지에서 알 수 있듯이 FOUNDATION_EXPORT 라는 심볼을 찾을 수 없어서 발생하는 오류다. 애초에 UIKit.h 이나 Foundation.h 헤더를 import 한 상태라면 여기에서 정의가 되기 때문에 별로 만날 일이 없는 오류이긴 하지만 특수한 경우, 예를 들어 Umbrella Header라면 이런 특정 프레임워크에 의존성을 강하게 남기는 헤더를 정의하기 힘들 수도 있다.

별도의 import 없이 해결하기 위해 FOUNDATION_EXPORT 대신 extern 을 쓰면 방법이 있다.

extern const unsigned char *ModuleVersion;

물론 빌드는 된다 수준 뿐이고 정상 동작 여부를 파악한 것은 아니지만 급하게는 쓸 수 있는 것 같다.