2012-03-01 5 views
6

iPhoneのプログラムでGMPを使用する必要がありますが、実際にどこで作業を開始するのかはわかりません。私はデバイスのバージョンとシミュレータのバージョンをビルドする必要があることを知っていますが、それは私が知る限りです。私は周りを見回してみましたが、あまり見つけられませんでした。iOS用GMPを構築する

iphoneの人は誰でもこのプロセスを手伝うことに成功していますか?GMP

私はBuilding GMP for iOSを見ましたが、それは私のために働いていません。 私はそれが正常に使用して構築されたと思った:

./configure CC="/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2" CXX="/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-g++-4.2" CPP="/Developer/Platforms/iPhoneOS.platform/Developer/usr/llvm-gcc-4.2/bin/llvm-gcc-4.2 -E" LD="$IOS/usr/bin/ld" CPPFLAGS="-arch armv7 -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -miphoneos-version-min=4.2" AR="$IOS/usr/bin/ar" NM="$IOS/usr/bin/nm" NMEDIT="$IOS/usr/bin/nmedit" LIBTOOL="$IOS/usr/bin/libtool" LIPO="$IOS/usr/bin/lipo" OTOOL="$IOS/usr/bin/otool" RANLIB="$IOS/usr/bin/ranlib" STRIP="$IOS/usr/bin/strip" --disable-shared --enable-static --prefix=$IOS/usr/local --host=none-apple-darwin10

そして、make installを。

/usr/local/lib私はlibgmp.aです。私はそれをコンパイルするために行くとき、私はxcodeににドラッグしたときにでも、私に語った:

ignoring file /Users/daniel/Desktop/libgmp.a, file was built for archive which is not the architecture being linked (armv7)

は(私は、その後、何らかの理由で自分のデスクトップにドロップされた私のXcodeプロジェクトににドラッグ)これは私にナットを駆動している

。誰も助けることができますか?これらのツールを使用して私は完全なnoobだと心に留めてください。

私は助けを得て、私はこの仕事をすることができます。 armv6armv7、およびsimulator(i386)で動作するフレームワークに変換するにはどうすればよいですか?

ありがとうございます。

ダン

UPDATE:誰がここでの問題は、私はそれを解決する方法である持っている必要があります。

  1. 最初にGMPをクロスコンパイルして、アーキテクチャをarmv6に設定します。 armv7、およびi386にそれぞれ対応します。アームバージョンをビルドするときに、フラグ-DNO_ASMをCPPFLAGSに追加します。

  2. 検索LIPO 3つの.Aファイルを一緒

  3. インポート.Aファイルはgmp.gとgmpgxx.hでのXcodeします。ロブによって示唆されるように

+0

私はそれを理解しました。私は今シミュレータ(i386)とデバイス(armv6&armv7)のために働くGMPライブラリを持っています。私は、Android開発のarmv6/7部分をNDKで使用できるかどうか疑問です。 NSStringでうまくいくように、目的のCラッパーを作成しましょう。 – user1178964

+4

あなた自身の質問への回答を投稿して、それを受け入れることができます。 –

答えて

6

完了

  • 、私は私の質問に答え、答えを受け入れます。私はこれを初めて知ったので、もっと簡単な方法で私を許したら、これが私がそれをどうやって管理したかです。

    iPhone用GMPをビルドするには、コマンドラインからライブラリを3回ビルドする必要があります。 armv6、armv7、およびi386アーキテクチャー用にビルドします。 xcodeに問題がないようにするには、-DNO_ASMをCPPFLAGSに追加してください。 3つの.aファイルを取得したら、これらのファイルを1つのライブラリにまとめます。

    あなたはlipoで作成したライブラリをxcodeに追加してヘッダーを追加できるようになりました。これでGphoneがiphone開発用に動作するようになりました。

    こちらがお役に立てば幸いです。私はこれを理解しようと数日間過ごしました。

  • +0

    答えをくれてありがとうが、donwloadableライブラリのようにリンクを提供することはできますか?私はそれを働かせるために縫い合わせることはできません。ありがとう! – doozMen

    +0

    クロスコンパイルの手順はどのようにしてどのアーキテクチャで動作するのですか?私が試してみると、もともと報告したのと同じ問題が発生します。 – hrabinowitz

    +0

    クロスコンパイルしようとすると、私はいつもこの設定エラーに悩まされます: "configure:error:Oops、mp_limb_tは64ビットですが、アセンブラコード は32ビットが必要です。 – hrabinowitz

    0

    OpenSSLの場合はbash scriptにインスピレーションを受けている可能性があります。標準configureスクリプトを使用し、perlを使ってCCとCFLAGSを置き換えます。

    関連する問題