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. 运行 ./configure 并将 --host 和 --prefix 设置为目标架构和编译对象的位置

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

  5. make && make install它对我有用!我有libreadline.alibreadline.so文件~/android/lib/lib

请注意,在我更新support/config.subsupport/config.guess文件之前,我遇到了问题中描述的相同错误。

于 2013-11-22T19:21:30.683 回答