1

私は、Objective-cをAndroidでコンパイルすることについてのジャッキー・グリーソンのプレゼンテーションと、同じテーマに関するMichael f1337のブログ投稿(私がいるMac OS Xでの作業を追加)に取り組んでいます。彼らの投稿と私の投稿の主な違いは、私が最新のNDK(r8b)を使用するように取り組んでいることです。私はこれらの手順に従いました:

1)ここから最新のNDKをダウンロードします:http://developer.android.com/tools/sdk/ndk/index.html

2)NDKというディレクトリを作成し、ここからダウンロードを解凍します。

3)NDKディレクトリに、toolchain-srcフォルダーを作成します。このディレクトリにcdします。

4)ツールチェーンをダウンロードします。

git clone https://android.googlesource.com/toolchain/build.git
git clone https://android.googlesource.com/toolchain/gmp.git
git clone https://android.googlesource.com/toolchain/gdb.git
git clone https://android.googlesource.com/toolchain/mpc.git
git clone https://android.googlesource.com/toolchain/mpfr.git

5)ディレクトリbinutilsを作成します。このディレクトリにcdします。

6)最新のbinutils tarボールをここからダウンロードします:http://ftp.gnu.org/gnu/binutils/

7)ファイルを現在のディレクトリに解凍します。

8)toolchain-srcディレクトリに戻り、ディレクトリgccを作成します。

9)Objective cをサポートするgccをダウンロードします(gcc-4.6.1でテスト済み)http://ftp.gnu.org/gnu/gcc/

10)このファイルをgccフォルダーに解凍してから、toolchain-srcディレクトリーに戻ります。

11)ビルドディレクトリにcdし、Makefile.inファイルを編集して、次の行を変更します。

--with-gnu-as --with-gnu-ld --enable-languages=c,c++

to 

--with-gnu-as --with-gnu-ld --enable-languages=c,c++,objc

12)gccディレクトリから、gccパッチをダウンロードしてインストールします。

curl http://gcc.gnu.org/bugzilla/attachment.cgi?id=24879 > gcc.patch

cd gcc-4.6.1
patch -p1 < ../gcc-4.6.1.patch

13)ndkでこのファイルを見つけます:build / tools/build-mingw64-toolchain.sh。このファイルで、次の行を変更します。

var_append GCC_CONFIGURE_OPTIONS "--enable-languages=c,c++"
to
var_append GCC_CONFIGURE_OPTIONS "--enable-languages=c,c++,objc"

14)次に、ndkでこのファイルを見つけます:build / tools/build-host-gcc.sh。ここで、行を変更します。

ARGS=$ARGS" --enable-languages=c,c++"
to
ARGS=$ARGS" --enable-languages=c,c++,objc"

15)bashターミナルに入り(bashと入力して)、次の行を入力します(<...>を実際のパスに置き換えます:

LOC="<path to NDK folder>/android-ndk-r8b/build/tools/build-gcc.sh"
SRC="<path to NDK folder>/toolchain-src"
NDK="<path to NDK folder>/android-ndk-r8b"
TOOL="arm-linux-androideabi-4.6.1"

sh $LOC --gmp-version=4.2.4 --mpfr-version=2.4.1 --mpc-version=0.8.1 --binutils-version=2.23 --try-64  $SRC $NDK $TOOL

これは機能し始めますが、次のメッセージ(出力config.logファイルにあります)で失敗します。

build-gcc.sh:1771: error: cannot find install-sh, install.sh, or shtool in "<path to NDK>/android-ndk-r8b/build/tools" "<path to NDK>/android-ndk-r8b/build/tools/.." "<path to NDK>/android-ndk-r8b/build/tools/../.."

build-gcc.shファイルを見ると、1771よりもはるかに少ない行数です。さらに調査したところ、このエラーは/toolchain-src/gcc/gcc-4.6.1/configureファイルで発生していると思いましたが、私は何を修正すればよいかわからない。

誰かが私がこれを修正する方法を知っていますか?私はすでにたくさん読んで試したので、外部リンクやビルド済みのソリューション(CrystaXのカスタムndk-r7など)を探していません。

4

1 に答える 1

2

不思議なことに、既存のNDKを削除して再アーカイブする必要がありました。その後、それは機能しました。最初にNDKを最初のステップとしてインストールしましたが、ステップ15の前に移動する必要があります。

于 2012-10-25T21:39:42.090 に答える