2012-12-12 5 views

Antwort

12

Hier ist, wie zu bauen es als eine statische Bibliothek für ARMv7 bauen die 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 

Das ist es. Die statische Bibliothek wird unter build/lib/libcares.a bereitgestellt.

Wenn Sie zielen andere Archs (z armeabi, x86) wiederholen Sie die configure mit dem richtigen -march Wert und wieder aufzubauen, die Bibliothek für jeden Bogen. Auch fühlen sich, frei zu:

  • die Zielplattform an Ihre Bedürfnisse anpassen (hier Android 2.3, auch bekannt als API-Ebene 9),
  • die configure Möglichkeiten nutzen, die Ihren Bedürfnissen passen (zB Sie möchten eine dynamische bauen Bibliothek aktivieren/deaktivieren Sie einige Funktionen, etc.).
+0

Ich folgte Ihrem Verfahren von Ihrer Website über den Aufbau der 3rd-Party-Bibliothek. Ich kompilierte 'gsl' Bibliothek und es kompiliert erfolgreich, aber wenn ich die App ausführe. Es gibt einen Laufzeitfehler, der 'cblas_sdsdot' nicht finden kann. Die Variable ist in der Lib vorhanden, wenn ich sie mit dem Befehl 'nm' überprüfe. Irgendein Vorschlag und wirklich Entschuldigung dafür, diese 3 Jahre alte Frage anzurufen. –

+0

Ich denke, das verdient eine dedizierte StackOverflow-Frage, da Sie sich anscheinend nicht auf c-ares sondern auf gsl konzentrieren, oder? – deltheil

+0

Hier ist der Link zu meiner Frage. Ich postete es heute, bevor ich das hier fragte. Http://stackoverflow.com/questions/30727709/gsl-nm-outputs-undefined-symbol-u? Noredirect = 1 # comment49530515_30727709 –