这是我当前的问题。现在我试图将一个基于x86的项目移植到android。但是这个项目需要pthread库支持,并且不能通过配置阶段。交叉编译为arm时找不到lpthread
命令:
./configure --build=${BUILD_SYS} --host=arm-eabi --prefix=${PREFIX} --disable-rpath --disable-libasprintf --disable-java --disable-native-java --disable-openmp --disable-curses
编译器和编译标志:
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"
错误消息:
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
请它帮忙:如何安装正确的标志? 或如何欺骗autoconf? 或如何交叉编译libpthread? AND最后通过编译。
你使用什么特定的交叉工具链(目标,版本等)?这个“arm-eabi”目标听起来像是你有一个裸机目标工具链,可能没有pthreads支持。对于Android,您可能希望使用NDK中的arm-linux-androideabi工具链。 – Notlikethat
@Notlikethat,你好,我把主机改为“arm-linux-androideabi”,它仍然有这样的问题。 ANDROID_TARGET = armv7-none-linux-androideabi TOOLCHAIN = arm-linux-androideabi – Jon