음... 바로 솔라리스로 배우려고 했다가... 내공이 턱없이 부족함과...

제 내공 문제인지.. GNUstep의 솔라리스 패키지를 받으려고 하면

 

 

보시는 바와 같이, sparc cpu계 밖에 없습니다...

일단... 유닉스나 리눅스나 거기서 거기라 가정하고, 그 환경에서 Objective-C를 익히기 위해... (맥... 너무 비싸서.. ㅠㅠ)

그나마 정보량이 많은 우분투계에서 진행하려 합니다.

 

1. 제목에서는 우분투라 했지만, 제가 리눅스를 만져본 경험상, 터미널 열고 텍스트 위주로 명령어를 치는건 주분투가 편하기 때문에 주분투로 설치 하였습니다.

오라클의 버츄얼Box(무료)를 다운받아 주분투(무료)를 다운, 설치를 시작합니다.

 

 

2. 설치가 다 되면, 터미널을 열고 몇몇 명령어들을 입력해 봅니다.

 다행히 make, gcc, g++ 같은건 기본 탑재로 설치되어있습니다.

확인후, GNUstep을 설치해 줍니다.

$sudo apt-get install gnustep

 

 

3. GNUstep-dev 도 설치해 줍니다. 

$sudo apt-get install gnustep-devel

 

 

4. 간단한 Hello World 예제를 작성합니다.

여기서는 #import <Foundation/Foundation.h>를 사용해서 NS-Class계를 사용하도록 합니다.

$ vi main.m

 

#import <Foundation/Foundation.h>


int main(int argc, const char * argv[])
{
     NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
     NSString *noncap = @"How do you like Objective-C?";
     NSString *cap;
     cap = [noncap capitalizedString];
     NSLog(@"output = %@", cap);
     [pool release];
    

     return 0;
}

 

 

원래는 저기서 gcc가 되어야 하는데... 파일과 디렉토리를 못찾겠다고 뜨네요...

그래서 설정이 되어있는지 확인해 보았습니다.

 

보아하니, Include 경로와, Lib 경로를 매크로로 해놓은 단어였네요... 그런데도 gcc가 안되니... ㅠㅠ...

 

5. 다른 방법으로 make를 해봅시다.

컴파일 환경을 자동으로 해주는 GNUmakefile을 만들어봅니다.

 

$ vi GNUmakefile

 

GNUSTEP_MAKEFILES=$(shell gnustep-config --variable=GNUSTEP_MAKEFILES)
include $(GNUSTEP_MAKEFILES)/common.make

TOOL_NAME=SampleCode
SampleCode_HEADERS =
SampleCode_OBJC_FILES = main.m
SampleCode_RESOURCE_FILES =

include $(GNUSTEP_MAKEFILES)/tool.make

 

 

음.... GNUmakefile 을 작성한뒤 그냥 make 하니 Linking 이 걸리면서 obj 폴더가 나왔습니다.

안에 TOOL_NAME 으로 지정한 SampleCode 파일이 만들어졌네요.

 

실행시켜 보니, "한글 로컬라이징 리소스를 읽다가 에러가 났어요" 같은 에러가 나네요...

무시하고 밑에 보니

ouput으로 How Do You Like Objective-c? 가 찍히네요...

음...

Hello World 치고는 뭔가 복잡한... 소스라 초보자로선 뭔지 모르겠네요..

 

 

그래서 main.m 을 다시 바꾸고 다시 컴파일 했습니다.

직관적인 Hello Objective-C 예제 입니다.

//새로운 main.m 파일, 이전 소스 싹 삭제하고 다시 작성해 봅시다.

 

#import <stdio.h>

#import <Foundation/Foundation.h>

 

int main(int argc, const char *argv[])

{

      NSString *helloString = @"Hello there.";

      printf("%s\n", [helloString cString];

 

      return 0;

 

 

보시는 바와 같이 깔끔하게 직관적으로 이제부터 뭘 어떻게 공부해야 할지 알려주네요 ㅠㅠ

아...

Objective C의 Hello world 를 우분투에서도 한번 돌려 봤습니다.

 

음....

우분투에서는

$ sudo apt-get install gobjc

를 해야 제대로 컴파일이 됩니다.

 

 

 

음... Objective C를 컴파일 하려고 봤더니 죄다 OSX에서 아이폰 개발에 대한 글 밖에 없네요 ㅠㅠ..

주말 내내 찾다가 겨우 몇몇 방법을 터득해서 포스팅합니다.

 

굳이 왜 OSX가 아니고 솔라리스에서 그짓을 하실분이 몇 되실진 잘 모르겠습니다만... ㅠㅠ

 

 

1. 우선 전 그놈인터페이스를 철저히 이용하는 위주라.... Package Manager에 Objective C 항목을 모두 설치해 줍니다.

 

 

2.  네이버/구글링으로 검색되는 수많은 Objective-C의 Hello World 예제에 사용되는

//솔라리스에서는 바로 안되는 Hello world 

#import <Foundation/Foundation.h>

void main(){

NSLog(@"Hello World");

}

   

위 소스....

저건  Next에서 초장기 제공되는 몇몇 라이브러리.. cocoa 였던거 같습니다만. 뭐 그런게 붙어야 하는데.

솔라리스 기본 응용프로그램 패키지에서는 설치되지 않는거 같습니다.

 

여튼.. 적당한 디렉토리 만들고 거기에 vi main.m 을 한뒤 다음과 같은 소스를 넣습니다

처음에는 그냥 C/C++ 의 hello world 랑 뭐가 달라 했지만, #include 가 #import로 바뀌었습니다.. ;;; (헐...)

그 이외에... printf를 사용해서 문자열 처리... 헐..... 그냥 C네...   

 

이후 컴파일은

gcc -x objective-c -Wno-import <파일이름> -lobjc -o <출력파일>

로 하면 됩니다만...

맨날 뭐좀 하려 할때마다 저거 치면 빡치니... makefile를 만들어 줍니다.

 

 

이 모든것을 했을때 결과...

 

아..... 겨우 Hello world가 나왔습니다 ㅠㅠ

 

참고 : http://b4you.net/blog/198

 

추가 !!

 

음.. 그래도 저거 가지고는 좀 아닌거 같다 해서 이번엔 좀더 확실한 Objective-C의 Hello World 예제를 구해 컴파일 해보았습니다.

 

 

이것에 대한 출처는 : http://gnustep.made-it.com/BG-objc/index.html#AEN73

 

2003년 버젼이니 지금의 cocoa에 휘둘리지 않아도 될꺼 같습니다. 

 

 

+ Recent posts