Can anyone please tell me how to build C-ares library in android (ndk-build)
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
Here's how to build it as a static library for ARMv7 with the NDK standalone toolchain:
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
That's it. The static library is deployed under build/lib/libcares.a
.
If you target other archs (e.g. armeabi
, x86
) repeat the configure
with the proper -march
value and re-build the library for each arch. Also, feel free to:
- adapt the target platform to your needs (here Android 2.3, a.k.a API level 9),
- use the
configure
options that fit your needs (e.g. you may want to build a dynamic library in addition, enable/disable some features, etc).