如何获得Android的libreadline?

时间:2013-07-17 10:49:15

标签: android readline

我尝试下载gnu readline-6.2源代码,但无法在Android平台上构建它。谁能指出我解决这个问题的方法?非常感谢!

我尝试在我的电脑上获取默认的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并使用相同的build命令编译conftest.c,它工作,.o文件就在那里。我不知道为什么配置仍然失败。有人可以帮忙吗?

1 个答案:

答案 0 :(得分: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.a

  6. 中有libreadline.so~/android/lib/lib个文件

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