1

私はiPhoneアプリケーションを開発していますが、すべてが初めてです。私は Mountain Lion OS X 10.8 で作業しており、xCode v4.5 を使用しています。プロジェクトで JPEG 処理機能が必要であり、libjpeg (http://www.ijg.org/) ライブラリを使用したいと考えています。私はいくつかの異なるアプローチを試みましたが、少し素朴であるため、どのように開始すればよいかわかりません。パッケージをダウンロードした後、通常の ./configure; を作成しました。作成してインストールします。現在、(/usr/local/include) の下に (jconfig.h、jerror.h、jmorecfg.h、jpeglib.h) と (/usr/local/lib) の下に (libjpeg.a、libjpeg.la) がありますが、 xCode プロジェクトでこれをリンク/使用する方法がわかりません。誰かが私をチュートリアルにリンクしたり、正しい方向にプッシュしたりできますか? 誰かが正常に jpeg ライブラリをインストールして使用した場合は、助けてください..

4

1 に答える 1

3

iOS 用の ARM とシミュレータ用の x86 の 2 つのアーキテクチャ用に LibJPEG をコンパイルする必要があるため、これは少し面倒です。

  1. あなたの最善の策は、NSImageまたはを使用することCGImageです。iOS には、システムに付属の JPEG ライブラリが既に存在するため、LibJPEG を使用する必要はありません。

  2. 別の方法は、LibJPEG ソースをプロジェクト (*.cファイルを含む) に直接配置することです。このようにして、さまざまなアーキテクチャ (シミュレーションと展開) に対して正しくビルドされます。

  3. ARM 用にビルドして、シミュレーターの実行を忘れることもできます。

  4. または、LibJPEG を 2 回コンパイルしlibjpeg.a、各コンパイルの結果のライブラリ () をlibtool.

    libtool -static path/to/arm/libjpeg.a path/to/x86/libjpeg.a -o libjpeg.a
    

NSImageまたはを使用することをお勧めする理由がわかりますCGImage。新しいライブラリをビルドしてインストールするよりも、既にインストールされているライブラリを使用することをお勧めします。

ファットな静的ライブラリの作り方

難しいことをやりたがっているように聞こえるので、i386 および ppc アーキテクチャ用のファットな静的ライブラリを構築する方法の例を次に示します。これは PowerPC OS X ボックスで行われました。ARM および i386 用にコンパイルする場合は、調整する必要があります。

クロスコンパイルには--hostandを指定する必要があることに注意してください。--build以下の値は私のコンピューターでは正しいですが、あなたのコンピューターでは間違っていると確信しています。

$ cd jpeg-8d
$ mkdir ビルド ppc ビルド i386
$ cd ビルド ppc
$ ../configure CFLAGS='-arch ppc -O2 -g' LDFLAGS='-arch ppc' \
        --enable-static --disable-shared
$ make -j2
$ cd ../build-i386
$ ../configure CFLAGS='-arch i386 -O2 -g' LDFLAGS='-arch i386' \
        --enable-static --disable-shared \
        --build=powerpc-apple-darwin9.8.0 --host=i386-apple-darwin9.8.0
$ make -j2
$ CD ..
$ file build-ppc/.libs/libjpeg.a
build-ppc/.libs/libjpeg.a: 現在の ar アーカイブのランダム ライブラリ
$ file build-i386/.libs/libjpeg.a
build-i386/.libs/libjpeg.a: 現在の ar アーカイブのランダム ライブラリ
$ libtool -static build-*/.libs/libjpeg.a -o libjpeg.a
$ ファイル libjpeg.a
libjpeg.a: 2 つのアーキテクチャを持つ Mach-O ユニバーサル バイナリ
libjpeg.a (アーキテクチャ i386 用): 現在の ar アーカイブのランダム ライブラリ
libjpeg.a (アーキテクチャ ppc 用): 現在の ar アーカイブのランダム ライブラリ
于 2012-11-03T21:11:18.947 に答える