26

私は以下を使用しました...

~/Development/Android/android-ndk-r8c/build/tools/make-standalone-toolchain.sh --platform=android-9 --install-dir=/Users/me/toolchain

次に、次のコード ファイルを作成します...

int main ()
{
  return 0;
}

私は試した ...

<toolchain>/arm-linux-androideabi-gcc test.c

私も試しました

 <toolchain>/arm-linux-androideabi-gcc --sysroot=<toolchain>/sysroot test.c 

二人とも帰ってきて…

 toolchain/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory
4

4 に答える 4

23

簡単にするために、sysroot を設定するだけです。

<toolchain>/arm-linux-androideabi-g++ ~/test.c -o ~/test --sysroot=/home/user/android-ndk/platforms/android-9/arch-arm/
于 2013-07-11T06:24:53.823 に答える
2

振り返ってみると、コマンドごとに Android-9 用のツールチェーンを作成しました...

~/Development/Android/android-ndk-r8c/build/tools/make-standalone-toolchain.sh --platform=android-9 --install-dir=/tmp/my-toolchain

走ったら…

<install>/android-ndk-r8c$ find ./ -name crtbegin_dynamic*
.//platforms/android-14/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-14/arch-mips/usr/lib/crtbegin_dynamic.o
.//platforms/android-14/arch-x86/usr/lib/crtbegin_dynamic.o
.//platforms/android-3/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-4/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-5/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-8/arch-arm/usr/lib/crtbegin_dynamic.o
.//platforms/android-9/arch-mips/usr/lib/crtbegin_dynamic.o
.//platforms/android-9/arch-x86/usr/lib/crtbegin_dynamic.o

ご覧のとおり、私の Android-9 のインストールには何らかの理由でこのファイルがありません。Android-14用に再構築しましたが、すべて正常に動作します。これがどのようにしてこのようになったのか、誰にも分かりますか?ボーンヘッドファイルは私の側で移動しますか?

于 2013-05-28T16:15:56.857 に答える
0

これが私にとってうまくいったことです。私は同じ問題でこの質問に行きました.NDKでgcc-4.8ツールチェーンを構築しようとしていて、同じ問題に遭遇しました. 私の状況で少し違うのは、私が Android デバイスでビルドしていることです。つまり、Bionic ライブラリがlibc.soありlibdl.so/system/lib. の構成時にこのエラーが発生しましたlibgomp:

toolchain-build/binutils-2.23/ld/ld-new: cannot find crtbegin_dynamic.o: No such file or directory
toolchain-build/binutils-2.23/ld/ld-new: cannot find -lc
toolchain-build/binutils-2.23/ld/ld-new: cannot find -ldl
toolchain-build/binutils-2.23/ld/ld-new: cannot find crtend_android.o: No such file or directory

Make ファイルは-B特定のディレクトリへのオプションを設定していたtoolchain/gcc-4.8/gcc/ので、これら 2 つの共有ライブラリから にシンボリック リンクを作成しまし/system/libgcc-4.8/gcc。次に、オブジェクト ファイルにシンボリック リンクcrtbegin_dynamic.oし、それをコンパイルして toolchain-build/prefix/lib/gcc/arm-linux-androideabi/4.8/ find`コマンドにインストールすると、それらを見つけるのに役立ちます。crtend_android.ocrtbegin.ocrtend.othe

シンボリックリンクを作成するために使用したコマンドは次のようになります。

ln -s ../../prefix/lib/gcc/arm-linux-androideabi/4.8/crtend.o crtend_android.o

に渡されたオプションtoolchian-build/gcc-4.8/gccを使用して構成が検索を指していたので、ディレクトリ内から、私にとってはうまくいきました。-Bmakexgcc

それが誰かを助けることを願っています。に移動する時間libatomicです。)

于 2014-07-14T11:02:28.003 に答える