2012-12-12 22 views

risposta

12

Ecco come costruire come una libreria statica per ARMv7 con il 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 

Questo è tutto. La libreria statica viene distribuita sotto build/lib/libcares.a.

Se bersaglio Altre archi (ad esempio armeabi, x86) Ripetere la configure con il corretto valore di -march e ri-costruire la libreria per ogni arco. Inoltre, sentitevi liberi di:

  • adattare la piattaforma di destinazione per le vostre esigenze (qui di Android 2.3, aka livello di API 9),
  • utilizzare le configure opzioni che si adattano alle vostre esigenze (ad esempio, si può decidere di costruire una dinamica libreria in aggiunta, abilita/disabilita alcune funzionalità, ecc.).
+0

Ho seguito la procedura dal tuo sito Web sulla creazione della libreria di terze parti. Ho compilato la libreria 'gsl' e questa è stata compilata con successo ma quando eseguo l'app. sta dando l'errore di runtime che 'non può localizzare cblas_sdsdot'. La variabile è presente nella lib come ho controllato con il comando 'nm'. Qualsiasi suggerimento e davvero dispiaciuto per aver invocato questa domanda di 3 anni. –

+0

Penso che questo meriti una domanda StackOverflow dedicata in quanto apparentemente non ci si concentra su c-ares ma su gsl, giusto? – deltheil

+0

ecco il link alla mia domanda. L'ho postato oggi prima di chiedere here.http: //stackoverflow.com/questions/30727709/gsl-nm-outputs-undefined-symbol-u? Noredirect = 1 # comment49530515_30727709 –