0

gnu readline-6.2 ソース コードをダウンロードしようとしましたが、Android プラットフォームでビルドできませんでした。誰かがこの問題に取り組む方法を指摘できますか? どうもありがとう!

PC でデフォルトの Android ビルド フラグを取得し、それを使用して ./configure を実行しようとすると、次のような問題が発生しました。

checking build system type... x86_64-unknown-linux-gnu
checking host system type... arm-linux-androideabi
configure: cross-compiling for arm-linux-androideabi is not supported

Beginning configuration for readline-6.2 for arm-linux-androideabi

checking whether make sets $(MAKE)... yes
checking for arm-linux-gcc... /home/huangwei/ICS/prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc
checking for C compiler default output file name... 
configure: error: in `/home/huangwei/ICS/external/readline':
configure: error: C compiler cannot create executables
See `config.log' for more details.

ただし、config.log を開き、同じビルド コマンドを使用して conftest.c をコンパイルすると、動作し、.o ファイルが存在します。構成がまだ失敗する理由がわかりません。誰か助けてくれる人はいますか?

4

1 に答える 1

1

arm-linux-androideabi の libreadline もコンパイルする必要があることに気付きました。私がしたことは次のとおりです。

  1. libreadline gnu のソース コードをダウンロードします。
  2. CC を android-ndk クロス コンパイラに設定します ( CC=~/android/lib/bin/arm-linux-androideabi-gcc)
  3. config.sub および config.guess ファイルを更新します (libreadline ソースのファイルは非常に古く、arm-linux-androideabi がありません)。

    $ cp /usr/share/misc/config.{sub,guess} support/.

  4. --host と --prefix をターゲット アーキテクチャとコンパイル済みオブジェクトの場所に設定して ./configure を実行します。

    $ CC=~/android/lib/bin/arm-linux-androideabi-gcc ./configure --build=arm-linux-androideabi --prefix=~/android/lib/

  5. make && make installそしてそれは私のために働いた!私はファイルを持っlibreadline.aていますlibreadline.so~/android/lib/lib

support/config.subおよびファイルを更新する前にsupport/config.guess、質問で説明されているのと同じエラーが発生していたことに注意してください。

于 2013-11-22T19:21:30.683 に答える