콘텐츠로 건너뛰기
Home » [Objc] 윈도에서 Sublime Text2로 Objective-C 컴파일하기

[Objc] 윈도에서 Sublime Text2로 Objective-C 컴파일하기

윈도 환경에서 sublime text2를 사용해 Objective-C 파일을 컴파일하고 실행하는데 성공~


GNUSTEP for Windows 설치하였고, 빌드 시스템 설정 소스는 아래와 같음.

컴파일러를 GCC –> LLVM으로 변경하면서 프론트엔드가 clang으로 변경되었음.


{
"cmd": ["clang", "-ObjC", "${file}", "-fobjc-arc", "-fblocks", "-framework", "Foundation", "-o", "${file_base_name}"],
"file_regex": "^(.*?):([0-9]+):([0-9]+): (.*)",
"selector": "source.m",
"variants": [
{
"name": "Run",
"cmd": ["${file_path}/${file_base_name}"]
},
{
"name": "Compile",
"cmd" : [ "clang", "-c", "${file}", "-ObjC", "-fblocks", "-fobjc-arc"]
},
{
"cmd": ["clang", ,"-g", "-ObjC", "${file}", "-fobjc-arc", "-fblocks", "-framework", "Foundation", "-o", "${file_base_name}"],
"name" : "Build for Debug"
},
{
"name": "Analyze",
"cmd" : [ "clang", "-c", "${file}", "-ObjC", "-fobjc-arc", "-fblocks", "–analyze"]
},
{
"name" : "Link-All",
"cmd" : ["bash", "-c", "clang *.o -o ${file_path}/${file_base_name} -ObjC -fblocks, -framework Foundation -fblock"]
},
{
"name" : "Build-All",
"path" : "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/sooop/bin:",
"cmd" : ["scc"]
},
{
"name" : "Run Output",
"cmd" : ["${file_path}/${file_base_name}"]
}
]
}


{
"cmd": [
"c:/apps/clang/bin/clang.exe", "${file}", "-ObjC",
"-o", "${file_path}/${file_base_name}",
"-I" ,"C:/GNUstep/GNUstep/System/Library/Headers",
"-I" ,"C:/GNUstep/include",
"-L", "C:/GNUstep/GNUstep/System/Library/Libraries",
"-lobjc" ,
"-fobjc-default-synthesize-properties",
"-lgnustep-base",
"-fblocks"
],
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "source.m",
"variants":
[
{
"name": "Run",
"cmd": ["${file_path}/${file_base_name}"]
},
{
"cmd": [
"c:/apps/clang/bin/clang.exe", "${file}",
"–analyze",
"-ObjC",
"-I" ,"C:/GNUstep/GNUstep/System/Library/Headers",
"-I" ,"C:/GNUstep/include",
//"-fobjc-default-synthesize-properties",
"-fblocks"
],
"name" : "Analyze"
},
{
"cmd": [
"c:/apps/clang/bin/clang.exe", "${file}",
"-c",
"-ObjC",
"-I" ,"C:/GNUstep/GNUstep/System/Library/Headers",
"-I" ,"C:/GNUstep/include",
"-fobjc-default-synthesize-properties",
"-fblocks"
],
"name" : "Compile"
},
{
"cmd" : ["c:/apps/clang/bin/clang.exe", "${file_path}/*.o" , "-o", "${file_base_name}",
"-lobjc" , "-lgnustep-base",
"-L", "C:/GNUstep/GNUstep/System/Library/Libraries"],
"name" : "Link-All"
},
{
"cmd": ["c:/apps/bin/scc.exe"],
"name" : "Build-All"
},
{
"cmd" : ["${file_path}/run.exe"],
"name" : "Run output"
},
{
"cmd" : ["cmd","/c","del", "*.o", "*.exe"],
"name" : "Clean Project"
},
{
"cmd": [
"c:/apps/clang/bin/clang.exe", "${file}", "-ObjC", "-g",
"-o", "${file_path}/${file_base_name}",
"-I" ,"C:/GNUstep/GNUstep/System/Library/Headers",
"-I" ,"C:/GNUstep/include",
"-L", "C:/GNUstep/GNUstep/System/Library/Libraries",
"-lobjc" ,
"-fobjc-default-synthesize-properties",
"-lgnustep-base",
"-fblocks"
],
"name" : "Build for Debug"
}
]
}

“[Objc] 윈도에서 Sublime Text2로 Objective-C 컴파일하기”의 7개의 댓글

  1. 관리자님 도움으로 설치완료하고 공부할 수 있게 되었습니다.
    감사합니다.
    한가지만 더 여쭤볼께요.
    m파일과 h파일이 분리 되었을때 컴파일을 해보면 서로 연결이 되지 않아 컴파일이 안됩니다.
    도움 부탁드립니다.
    좋은 하루 되시구요.

    1. 아 분리된 파일을 컴파일 할 때 Xcode는 어떤 헤더가 어떤 .m 파일에 연결된 건지 알기 때문에 순차적으로 각각의 클래스를 컴파일 한 다음에 합치게 됩니다. 즉 여러 차례에 걸쳐서 컴파일 합니다.) 이걸 명령행에서 처리하시려면 http://52.192.73.192/wp/archives/4199 요 글을 참고해주세요.

    2. 아니면 큰 프로젝트 단위의 컴파일을 직접하시는 게 아니라,
      간단히 공부하면서 쓸 용도시라면 파일을 나누지 않고 main.m 에 다 써 놓고 쓰는 방법도 있습니다.
      프로젝트 단위로 관리하시려면 devC++로 Objective-C 컴파일하는 방법에 대해 구글링해보시면 한글로 된 문서도 많으니 참고하세요.

  2. 설치는 잘한거 같은데 컴파일시
    clang: error: unable to execute command: program not executable
    clang: error: assembler (via gcc) command failed with exit code 1 (use -v to see invocation)
    에러가 발생합니다. 원인이 무엇인지 찾지를 못하겠네요.
    도움 부탁드립니다.

    1. clang은 컴퓨터에 설치된 GCC용 바이너리를 호출합니다. 링커 같은 것들이요. GNUStep이 설치돼있고, 환경변수 PATH에 GNUStep내의 bin 폴더가 추가돼있는지 확인해보세요.
      시스템에 따라서는 clang이 버전을 타는 경우도 있습니다.

  3. 좋은 정보 감사합니다. 컴파일러를 gcc 에서 llvm 으로 변경하는 방법 좀 알려주세요..

    1. LLVM 프론트엔드 컴파일러로 Clang 이라는 게 있습니다. LLVM 홈페이지에서 download 페이지를 보시면 윈도용으로 프리컴파일된 바이너리가 있는데, 이걸 다운로드 받으시면 됩니다. (3.1인가 3.0인가 그렇고 3.2 부터는 윈도용 바이너리가 없어요.)
      http://llvm.org/releases/download.html#3.1

댓글이 닫혔습니다.