삽질하는플머

'GNUstep'에 해당되는 글 1건

  1. MinGW-MSYS 에 GNUStep base 얹기 3

MinGW-MSYS 에 GNUStep base 얹기

탐구생활/Objective-C
왜 이 짓을 하냐고??
MinGW를 깔 때 Objective-C 컴파일러도 함께 설치해서 libobjc 가 깔려있는 상태지만, 
심심풀이삼아 Objective-C 코딩을 해보려면 NSObject 없이는 솔직히 아무것도 안되거덩.
하지만 그거 하자고 GNUStep 을 또 설치하기는 그렇잖아. 태국 홍수로 하드값이 비싸져 용량 늘리기도 힘든데...
게다가 GNUStep의 우중충한 GUI는 별로 관심없으니 base만 깔아보자는 이야기.

C:\MinGW 에 MinGW가 설치된 상태에서 C:\MinGW\GNUStep 에 필요한 환경을 구성하는 것이 목표임. 
다운로드 페이지는 여기. 
http://wwwmain.gnustep.org/resources/downloads.php?site=ftp%3A%2F%2Fftp.gnustep.org%2Fpub%2Fgnustep%2F 
이 중에서 GNUstep Base 가 오늘의 장난감이다. 

맨 밑에 Pre-requisites 항목에는 libffi, libxml, libtiff 가 필요하다고 나와있다. 
libtiff야 GUI에 쓰일테니 무시. libxml은 gnustep-base 구성시 --disable-xml 옵션으로 빼버릴 수 있으니 libffi만 설치하면 된다. 

$ mkdir build-gnustep
$  cd build-gnustep

$ wget ftp://sourceware.org/pub/libffi/libffi-3.0.9.tar.gz
$ tar -xzf libffi-3.0.9.tar.gz
$  cd libffi-3.0.9
$ ./configure --prefix=/mingw/GNUStep
$ make
$  make install



C:\MinGW\GNUStep 가 새로 생성되고 여기에 지금 생성된 녀석들이 들어감. 

/etc/profile 을 편집, /mingw/GNUStep/bin 을 PATH에 추가한다.

export PATH="$PATH:/mingw/GNUStep/bin"



셸 재구동 후 계속 진행하자. 재구동이 귀찮으면 wonderman님이 가르쳐주신 다음 방법을 써도 된다. 

$ source /etc/profile




동일한 방식으로 gnustep-make 다운로드 후 빌드. 

$ wget ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-make-2.6.2.tar.gz
$ tar -xzf  gnustep-make-2.6.2.tar.gz
$  cd gnustep-make-2.6.2 
$ ./configure --prefix=/mingw/GNUStep
$ make 
$ make install



 
이제 gnustep-base 다운로드 후 빌드. 구성옵션에 libffi 경로를 지정해준다.
libxml을 설치하지 않았으니 --disable-xml도 잊지 말 것. 

$ wget ftp://ftp.gnustep.org/pub/gnustep/core/gnustep-base-1.24.0.tar.gz 
$  tar -xzf gnustep-base-1.24.0.tar.gz
$ cd gnustep-base-1.24.0
$ ./configure --prefix=/mingw/GNUStep \
--with-ffi-include=/mingw/GNUStep/lib/libffi-3.0.9/include \
--with-ffi-library=/mingw/GNUStep/lib \
--disable-xml
$ make
$  make install


 
끗! 

이제 테스트~ 테스트~~
 Dev C++을 열고 Objective-C용 컴파일 설정을 추가하자.


컴파일러 추가명령 : -fconstant-string-class=NSConstantString
링커 추가명령 : -lobjc -lgnustep-base
실행파일 디렉토리에 : C:\MinGW\GNUStep\bin 추가. 
라이브러리는 : C:\MinGW\GNUStep\lib
헤더는 : C:\MinGW\GNUStep\include



HelloWorld 예제를 만들어 돌려보면



뭐 잘 동작하는군. 




두 줄 요약.
- 굳이 GNUStep 을 따로 설치하지 않아도 단순히 Objective-C 학습용이라면 기존 MinGW 환경에 추가할 수 있다. 
- 하드 용량이 남아돈다면 그냥 GNUStep을 깔자.
 

덤. Dev-CPP에서 Objective-C 공부하기는 예전에 끄적여둔 http://oranke.tistory.com/141 를 참고.