如何在android(NDK)中构建c-ares库

时间:2012-12-12 14:57:53

标签: android-ndk c-ares

任何人都可以告诉我如何在android(ndk-build)中构建C-ares库

1 个答案:

答案 0 :(得分:13)

以下是如何使用NDK standalone toolchain将其构建为ARMv7的静态库:

export NDK=/tmp/android-ndk-r8b

# Create the standalone toolchain
$NDK/build/tools/make-standalone-toolchain.sh \
--platform=android-9 \
--install-dir=/tmp/my-android-toolchain

export PATH=/tmp/my-android-toolchain/bin:$PATH
export SYSROOT=/tmp/my-android-toolchain/sysroot
export CC="arm-linux-androideabi-gcc --sysroot $SYSROOT"

# Download the latest release
curl -O http://c-ares.haxx.se/download/c-ares-1.9.1.tar.gz
tar xvfz c-ares-1.9.1.tar.gz

# Configure
cd c-ares-1.9.1 && mkdir build
./configure --prefix=$(pwd)/build \
--host=arm-linux-androideabi \
--disable-shared \
CFLAGS="-march=armv7-a"

# Build and install
make && make install

就是这样。静态库部署在build/lib/libcares.a下。

如果您定位其他拱门(例如armeabix86),请使用正确的configure值重复-march,并为每个拱门重新构建库。另外,请随意:

  • 根据您的需求调整目标平台(此处为Android 2.3,a.k.a API级别9),
  • 使用符合您需求的configure选项(例如,您可能还想构建动态库,启用/禁用某些功能等)。