이것이 현재 문제입니다. 이제 x86 기반 프로젝트를 Android로 이식하려고합니다. 그러나이 프로젝트는 pthread 라이브러리 지원이 필요하고 설정 단계를 통과 할 수 없습니다.팔을 교차 컴파일 할 때 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를 교차 컴파일하는 방법은 무엇입니까? 및이 마지막으로 컴파일을 전달합니다.
어떤 특정 교차 툴체인 (대상, 버전 등)을 사용하고 있습니까? 이 "arm-eabi"타겟은 베어 메탈을 타겟으로하는 툴 체인을 가지고있는 것처럼 들리며, pthread를 지원하지 않고도 구축 할 수 있습니다. Android의 경우 NDK의 arm-linux-androideabi 툴 체인을 사용하고 싶을 것입니다. – Notlikethat
@Notlikethat, 안녕하세요, 호스트를 "arm-linux-androideabi"로 변경했지만 여전히 문제가 있습니다. ANDROID_TARGET = armv7-none-linux-androideabi TOOLCHAIN = arm-linux-androideabi – Jon