错误信息
/opt/android/android-ndk-r8e/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/ld: crtbegin_so.o: No such file: No such file or directory
collect2: ld returned 1 exit status
Makefile:492: recipe for target 'libexpat.la' failed
尝试过把crtbegin_so.o所在目录加入LDFLAGS,或是按照其他人说的在Makefile目录下生成crtbegin_so.o的软链接,问题依然存在。crtend_so.o: No such file or directory的情况也一样。
编译环境
PC:Ubuntu 16.04
目标系统:arm-linux-androideabi
NDK版本:android-ndk-r8e
解决办法
在LDFLAGS中加上NDK路径:
--sysroot=${ANDROID_NDK}/platforms/android-14/arch-arm
我使用./configure生成配置时,加入参数LDFLAGS="--sysroot=/opt/android/android-ndk-r8e/platforms/android-14/arch-arm/"。
StackOverflow原文中提到路径需要加上引号,即:
--sysroot="${ANDROID_NDK}/platforms/android-14/arch-arm"
但是经过测试,这两种写法都生效了,一并做下记录。
附上StackOverflow原文链接:https://stackoverflow.com/questions/6881164/crtbegin-so-o-missing-for-android-toolchain-custom-build/10295118
