2016-07-29 60 views
1

das ist mein derzeitiges Problem. Jetzt versuche ich ein x86-basiertes Projekt auf Android portieren. Aber dieses Projekt benötigt Pthread-Bibliotheksunterstützung und kann die Konfigurationsphase nicht bestehen.kann lpthread nicht finden, wenn Kreuz zum Arm kompilieren

Befehl:

./configure --build=${BUILD_SYS} --host=arm-eabi --prefix=${PREFIX} --disable-rpath --disable-libasprintf --disable-java --disable-native-java --disable-openmp --disable-curses 

Compiler und kompilieren Fahnen:

export CFLAGS="--sysroot=${SYSROOT} -I${SYSROOT}/usr/include -I${PREFIX}/include -I${NDK}/sources/android/support/include -pthread -fPIE -DANDROID -Wno-multichar" 
export CXXFLAGS=${CFLAGS} 
export CPPFLAGS="--sysroot=${SYSROOT} -I${SYSROOT}/usr/include -I${PREFIX}/include -I${NDK}/sources/android/support/include -pthread -DANDROID -DNO_XMALLOC -mandroid" 
export LIBS="-lc -lgcc -lstdc++ -ldl" 
export LDFLAGS="-Wl,-L${SYSROOT}/usr/lib -L${PREFIX}/lib -L${NDK_TOOLCHAIN}/lib" 

Fehler: Nachricht

checking for WIN32... no 
checking for Mac... no 
checking for Linux... compile in linux 
checking for uuid_generate in -luuid... yes 
found library uuid 
checking for pthread_create in -lpthread... no 
configure: error: *** Unable to find pthread library 

Bitte helfen Sie damit: wie recht Fahnen befestigen? ODER Wie zu autoconf betrügen? OR Wie kompiliere ich libpthread? UND übergeben Sie die Kompilierung schließlich.

+0

Welche spezifische Toolchain (Ziel, Version usw.) verwenden Sie? Dieses "arm-eabi" -Ziel hört sich an, als hättest du eine Bare-Metal-zielgerichtete Toolchain, die ohne Pthreads-Unterstützung gebaut werden könnte. Für Android möchten Sie wahrscheinlich die Arm-Linux-androideabi Toolchain aus dem NDK verwenden. – Notlikethat

+0

@Notlikethat, Hallo, ich habe den Host auf "arm-linux-androideabi" geändert, es hat immer noch so ein Problem. ANDROID_TARGET = armv7-keine-linux-androideabi TOOLCHAIN ​​= arm-linux-androideabi – Jon

Antwort

2

POSIX-Threads (pthreads) für Android:

Das Android libc, bionisch, für pThreads integrierte Unterstützung bietet, so no additional linking (-lpthreads) is necessary. Es ist nicht voll POSIX-Threads Funktionalität und Unterstützung auslässt für Lese nicht implementiert/Schreib Sperren, pthread_cancel(), Prozess-geteilte Mutexe und Zustandsvariablen sowie andere erweiterte Funktionen.

Also nicht erforderlich, -lpthreads hinzufügen und entfernen Sie auch zu überprüfen.

+0

Ich sah diese Antwort und versuchte es. Die Sache ist, dass ich Autokonf ohne Flags nicht passieren kann. – Jon

+0

Entfernen Sie nicht alle Flag entfernen pthread verwandten Sachen .... – Mohan

+0

bereits entfernt und hat nicht richtig funktioniert, kann immer noch Pthread nicht finden – Jon