[OSX] vi에서 Objective-C를 컴파일하기.

Xcode를 사용하지 않고 맥에서 vi로 Objective-C를 컴파일 할 수 있을까. Xcode를 설치해두긴했다는 전제하에서는 간단하다. (미안하지만 Xcode를 설치하지 않은 상황에서 vi로 Objc를 컴파일하긴 좀 어려울 것 같다. 물론 여러 대안들이 있기는 하지만 Xcode 설치보다 쉬운 건 없을 것 같다.)

먼저 Xcode 4.X에서 명령줄 도구는 선택적으로 설치할 수 있도록 변경되었다. 예전에는 Xcode만 설치하면 터미널에서 바로 gcc를 쓸 수 있었으나 지금은 아니라는 말씀. Xcode의 환경설정창에서 Downloads 탭에서 Command Line Tools를 설치한다. 참고로 Xcode 4.3 이상의 gcc는 LLVM 컴파일러의 링크로 되어 있다. 즉 gcc는 llvm을 실행하게 된다.

터미널을 열고 다음 코드를 입력한 후 적당한 이름으로 저장한다. 이 때 확장자는 .m을 붙인다.

#import <Foundation/Foundation.h> 

@interface MyHello:NSObject 
-(void)sayHello; 
@end 

@implementation MyHello 
-(void)sayHello 
{ 
    printf("Hello, World\n"); 
} // sayHello 
@end 

int main(int argc, char *args[]) 
{ 
    MyHello *my = [[MyHello alloc] init]; 
    [my sayHello]; 

    return 0; 
} // main

gcc로 C와 동일하게 컴파일한다. 파일 확장자가 m이므로 알아서 Objective-C로 인식하여 컴파일해주는데, 다만 파운데이션 프레임워크를 쓴다고 옵션을 줘야한다.

:!gcc -framework Foundation -g % -o %<

실행은 터미널에서 하는 것 처럼 현재 디렉토리의 실행파일을 실행하듯 호출하면 된다

:!./%<

윈도에서는 GNU-STEP을 설치하면 된다(고한다). GNU-STEP은 NEXT-STEP(코코아의 전신)을 구현하는 오픈소스 프로젝트이다. 여기서 Foundation 프레임워크 및 Appkit을 설치할 수 있다. 네이버 등에서 검색해보면 방법은 많다고 한다. (근데 난 잘 안되더라.)