Как собрать библиотеку c-ares в Android (NDK)

Может кто-нибудь, пожалуйста, скажите мне, как собрать библиотеку C-ares в Android (ndk-build)

1 ответ

Вот как это сделать как статическую библиотеку для ARMv7 с помощью автономного набора инструментов NDK:

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,

Если вы нацелены на другие арки (например, armeabi, x86) повторить configure с надлежащим -march оцените и пересоберите библиотеку для каждой арки. Кроме того, не стесняйтесь:

  • адаптировать целевую платформу под свои нужды (здесь Android 2.3, он же API уровень 9),
  • использовать configure параметры, которые соответствуют вашим потребностям (например, вы можете дополнительно создать динамическую библиотеку, включить / отключить некоторые функции и т. д.).
Другие вопросы по тегам