ページ

2014年6月7日土曜日

Xcode 5 でwxWidgetsアプリのビルド

前回のエントリでwxWidgetsのこれでようやくwxWidgetsを使ってアプリケーションを開発することが出来る.サンプルコードのようにMakefileでビルドするのも悪くないのだけど,私はコマンドラインデバッガをまともに使えないので,やはりアプリの開発はXcodeでやりたい.

まずはプロジェクトの新規作成.テンプレートはOS X ApplicationのCocoa Applicationを選択する.

プロジェクトが作成されたら,以下の2個以外の構成ファイルを全部削除する.

  • (プロジェクト名)-Info.plist
  • main.m


main.mをmain.cppに変更して,Objective-Cの文法を全部消す.

ここからBuild Settingsにいくつかの設定をしなければないが,毎回やるのが面倒なので,以下のような設定ファイルを記述した.私はこの設定ファイルをwxWidgetsのインストールディレクトリに置いておき,新しくアプリを作るときにコピーして使っている.

mywx.xcconfig

WXTOOLKIT = cocoa
WXTOOLKITUPPER = COCOA
WXROOT = /Users/USERNAME/Develop/wxWidgets-3.0.0
HEADER_SEARCH_PATHS = $(inherited) $(WXROOT)/lib/wx/include/osx_cocoa-unicode-static-3.0 $(WXROOT)/include/wx-3.0LIBRARY_SEARCH_PATHS = $(inherited) $(WXROOT)/lib
GCC_PREFIX_HEADER = $(WXROOT)/include/wx-3.0/wx/wxprec.h
GCC_PRECOMPILE_PREFIX_HEADER = YES
MACOSX_DEPLOYMENT_TARGET = 10.7
ARCHS = i386 x86_64
GCC_PREPROCESSOR_DEFINITIONS = $(WX_PREPROCESSOR_DEFINITIONS) __WX__ __WXMAC_XCODE__=1 __WXOSX_COCOA__ wxUSE_BASE=1 WX_PRECOMP=1 wxUSE_UNICODE_UTF8=0 wxUSE_UNICODE_WCHAR=1 _FILE_OFFSET_BITS=64 _LARGE_FILES SCI_LEXER
CLANG_CXX_LIBRARY = libstdc++
OTHER_LDFLAGS = -framework WebKit -framework IOKit -framework Carbon -framework Cocoa -framework AudioToolbox -framework OpenGL -framework QTKit -lz -liconv -lwx_baseu-3.0 -lwx_baseu_net-3.0 -lwx_baseu_xml-3.0 -lwx_osx_cocoau_adv-3.0 -lwx_osx_cocoau_aui-3.0 -lwx_osx_cocoau_core-3.0 -lwx_osx_cocoau_gl-3.0 -lwx_osx_cocoau_html-3.0 -lwx_osx_cocoau_media-3.0 -lwx_osx_cocoau_propgrid-3.0 -lwx_osx_cocoau_qa-3.0 -lwx_osx_cocoau_ribbon-3.0 -lwx_osx_cocoau_richtext-3.0 -lwx_osx_cocoau_stc-3.0 -lwx_osx_cocoau_webview-3.0 -lwx_osx_cocoau_xrc-3.0 -lwxpng-3.0 -lwxregexu-3.0 -lwxscintilla-3.0 -lwxtiff-3.0


さて,mywx.xcconfigをプロジェクトにコピーする.そしてプロジェクトのConfigurationsにmywx.xcconfigを適用する.

どうもmywx.xcconfigだけでは設定しきれない箇所があるので,TargetのBuildSettingsを手動で設定する.

まずPrefix Headerの設定から,最初に削除した(プロジェクト名)-Prefix.pchファイルの設定を削除する.

次に,C++ Standard Libraryをlibc++に変更する.

さて本来ならここでビルドが通るべきだと思うのだが,ビルドしてみると,config_xcode.hがないとかいうエラーが出る.探してみると,wxWidgetsをダウンロードして展開したディレクトリのinclude/wx/osx/の中にこのファイルがあるようだが,インストールディレクトリにコピーされていない.よくわからないけど,このファイルを手動でインストールディレクトリのinclude/wx-3.0/wx/osx/にコピーしてしまった.

以上の設定で,ようやくビルドが通った.mywx.xcconfigだけで設定しきれない部分も結構あるので,Xcodeプロジェクトのテンプレートにできると良いのだけど,やり方がいまいちよくわからないのでとりあえず保留.まぁ手作業でやっても慣れれば1分もかからないだろう.

あとはwxWidgets tutorial(http://zetcode.com/gui/wxwidgets/)などをやってみると,基本的なだいたい使い方がわかる.



0 件のコメント: