그전 포스팅을 통해 Windwos와 Linux(Ubunte)에서 WxWidget컴파일과 그 운영체제에 맞는 IDE툴을 통해 개발할 수 있는 샘플을 컴파일 해봤습니다. 

전에 Mac에 대해서 컴파일을 콘솔에서는 성공했는데, XCode에서 사용할 수 있는 환경을 설정하지 못해 그동안 글을 포스팅하지 못했는데, 오늘 드디오 XCode에서 컴파일 하는 방법에 성공했습니다. 개인적으로 GUI환경에서 런타임으로 break point 를 걸고 디버깅하는 환경에 목숨거는 경향이 좀 있습니다.
 Mac에서 컴파일 하는 방법이 carbon 을 이용하는 방법과 cocoa 를 이용하는 방법이 있습니다. cocoa를 이용하는 방법은 컴파일이 잘 안되어서 carbon 을 이용하는 방법을 사용했습니다. 

테스트 환경은 
운영체제 OSX 10.6.6
WXWidget :  WxMac-2.8.12
XCode : 4.0.2 

 우선  맥용 wxWidget 을 받아서 콘솔에서 컴파일 해야 합니다. 맥용 wxWidget은 http://wxwidgets.org/downloads/  에서 wxmac 을 다운 받습니다.  적당한 곳에 압축을 푼다음 해당  파일내 install-mac.txt 에 있는 것처럼 컴파일 합니다. 
 
제 경우 콘솔에대 해당 디렉토리를 접근한 후 아래와 같이 했습니다. 
#mkdir build-carbon-debug
#cd build-carbon-debug
#arch_flags="-arch i386"
#../configure CFLAGS="$arch_flags" CXXFLAGS="$arch_flags" CPPFLAGS="$arch_flags" LDFLAGS="$arch_flags" OBJCFLAGS="$arch_flags" OBJCXXFLAGS="$arch_flags" --enable-unicode --enable-debug --disable-shared
 #make

빌드는 후, XCode를 통해 샘플을 컴파일 할 수 있습니다.  XCode 에서 Cocoa Application 으로 새로운 프로젝트를 생성합니다. WxMac을 Cocoa로 컴파일하지 않더라도 사용할 수 있습니다. 그냥 콘솔용(Command Line Tool)로 프로젝트를 구성할 수도 있지만 실행시 포커스가 설정되지 않는다. 그 때문에 따로 추가작업(http://wiki.wxwidgets.org/WxMac-specific_topics#My_app_can.27t_be_brought_to_the_front.21) 이 필요합니다. 특별히 컴파일시 따로 다른 점은 없기 때문에 그냥 Cocoa 프로젝트를 이용합니다.

이미 존재하는 파일 __AppDelegate.h , __AppDelegate.m  , main.m 파일을 삭제합니다. 그리고 maip.cpp를 아래 처럼 적용합니다.
====================
#include "wx/wx.h"
 
class MyApp: public wxApp
{
    virtual bool OnInit();
		
    wxFrame *frame;
};
 
IMPLEMENT_APP(MyApp)
 
 
bool MyApp::OnInit()
{
    frame = new wxFrame(NULL, -1,  wxT("Hello wxWidgets"), wxPoint(50,50), wxSize(800,600));	
    frame->Show();
    return true;
}
================== 

 이제 프로젝트 빌드 설정을 해야 합니다. 

빌드 설정에 필요한 path  들은 wxWidget 자체를 컴파일 했을 때 생성되는 wx-config 파일을 이용해서 path를 알 수 있습니다. wxWidget 을 빌드한 패스(저의 경우 build-carbon-debug 패스안에 )wx-config파일이 생성됩니다. 
 
#./wx-config --cppflags 
#./wx-config --libs


--cppflag 옵션은 X-Code에서 빌드 설정 중 other c flags 에 설정해야 하고,  --libs의 경우 other linking flags 해당 결과값을 넣습니다.  그리고 나서 컴파일 해면 빈 Window가 실행됩니다. (만일 컴파일에 실패한다면 32bit로 수정해서 컴파일합니다.)

 
 sample 들에 대해서도 XCode를 통해 컴파일 할 수 있습니다. 제가 가장 좋아하는 grid 샘플을 예로 들겠습니다. 임시로 만든 main.cpp를 삭제하고 sample 폴더에 있는 griddemo.h, griddemo.cpp 를 복사해서 컴파일 해보면 실행되는 것을 확인 할 수 있습니다. 


작성이 : 승용.한밀
최종수정일 : 2012.03.10