忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

iOSにてCライブラリを使用する方法

わか

iOSにてCで使用されているライブラリを使いたい案件がありましたので、
概要を記載します。

まず、ライブラリには静的ライブラリと動的ライブラリが存在しますが、
iOSで使用できるのは静的ライブラリのみです。
ファイル拡張子は「.a」になります。

また、静的ライブラリを作成する際に気をつけなければならないのはアーキテクチャ(CPU)対応です。
CPUデバイス補足
armv7iPhone3GS以降32bit。iPhone5以降でも動作するが、パフォーマンスは落ちる
armv7siPhone532bit
i386シミュレータ32bit
x86_64シミュレータ 64bit
arm64iPhone5s64bit
基本的に全てのアーキテクチャに対応した静的ライブラリを作成することになります。
使用したいライブラリによっては64bit対応されていないものもあるので、
自前で対応するか、32bit版(パフォーマンスは落ちます)で動作させることになります。

本来であればcのライブラリをダウンロードし、自分でiOSで使用できるように
コンパイルする必要があります。しかし、先人の偉い方々が簡単に作成できるように
シェルスクリプトを作成してくれています。
まず、githubにてiOS用に作成してくれるスクリプトがないか探してみましょう。
(私が使用したかったライブラリは全てありました)

作成した静的ライブラリ(***.a)ファイルについてどのアーキテクチャに対応しているか
確認するには以下のコマンドで分かります。
xcrun -sdk iphoneos lipo -detailed_info ***.a
32bit版のarmv7, armv7s, i386が対応していれば、最低限問題ないでしょう。

あとは、Xcodeで「Build Phases」->「Link Binary with libraries」にて.aファイルを追加。
あと必要なヘッダファイルを好きなところに追加してやれば良いです。

githubにシェルスクリプトがあるかないかで作業量が大幅に変わってきます。
本当に助かりますね

拍手[0回]

PR