私は、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など)を探していません。