ちょっとは人のためになる事をしないとインターネットコミュニティーの皆様に申し訳がないかと思いながら、自分の備忘録ていどでしかなく、実際の所たいした情報も提供できないでいるブログ
× [PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Xcode 4.2 で iOS のスタティックライブラリを作り、自分で利用する
スタティックライブラリとアプリケーションは別のプロジェクトとする。
せっかちな人用
ライブラリを使う側:
ライブラリ側:
一般的な考慮事項 ライブラリを利用する場合、
の二点が必要になる。前者はコンパイラーの -I オプションに関する設定であり、後者はリンカーの -L のディレクトリ指定、-lのライブラリ指定に関わる設定だ。 両者を適切に設定しないと、コンパイルできない(.hが見つからない)、リンクできない(未定義シンボル)といったトラブルになる。 スタティックライブラリの作成方法 プロジェクト作成時に、Cocoa Static Library を選択する。ここまでは簡単。 ライブラリの名前のつけ方に注意。 Unix系のライブラリは libなんとか.a というファイル名とするのが慣例で、この名前にするために、プロジェクト名は、「なんとか」の部分だけを指定する。 例えば、libpicture.a を作ろうとしている場合、Xcode でのプロジェクト名は "picture" だけを指定する 。"libpicture"などと指定すると、liblibpicture.a が作られてしまい気持ちが悪い。あとで修正するのも面倒だ。 Xcode プロジェクトにライブラリのプロジェクトを追加する。 アプリケーションのプロジェクトに、スタティックライブラリの .xcodeproj ファイルを追加する。追加するのは .xcodeproj であり、スタティックライブラリプロジェクトのディレクトリではない。
スタティックライブラリがヘッダーファイルを公開する方法 スタティックライブラリは、ライブラリ関数のプロトタイプや各種定義類が入ったヘッダーファイルを提供する。automake/autoconfを使う場合は make install で /usr/local/include などにコピーするのだが、アーキテクチャの違う iOS ライブラリをそのような場所にコピーする訳にもいかない。 Xcodeでは少し変わったビルド方法をとっている。公開するヘッダーファイルをプロジェクト内の領域(DerivedData下)にヘッダーファイルをコピーして、依存関係のあるプロジェクトでヘッダーファイルを参照する仕組みだ。 公開したいヘッダーファイルを Project Navigator(⌘1)で選択し、File Inspector(Option+⌘+1)のTarget Membershipでライブラリターゲットのメンバーとするよう、チェックを入れる また、Target Membership の "Project" となっている部分を Public に変更する。
スタティックライブラリが公開したヘッダーファイルをインクルードする設定。 プロジェクト内の領域(DerivedData下)にコピーされたヘッダーファイルを利用できるように設定する。ライブラリを使用するターゲットの "Header Search Path" に下記の2行を追加する。 $(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/usr/local/include $(INSTALL_ROOT)/usr/local/include (2011/10/18追記: Archive時、これがないと include が見つからない) 検索ボックスで "header search" と入れると見つけやすい。設定項目の表示が Basic だと出ないので注意。 プロジェクトレベルの Header Search Paths に、本設定を追加しても良い。
依存関係および、リンク対象とする設定を行う
Link Binary With Libraries に、リンクしたいライブラリを追加する。
以上。 PR |
カレンダー
カテゴリー
フリーエリア
最新CM
[02/07 @naoshi65536]
[02/07 忍]
[09/18 とおりすがり]
[06/26 ilmare]
[03/16 とおりすがり]
最新記事
(01/30)
(01/30)
(08/13)
(05/26)
(04/08)
最新TB
ブログ内検索
カウンター
アクセス解析
|