上一篇我用的是android-ndk-r10d的ndk,编译arm64-v8a是有问题的,解决了下面那个“错误提示1”的问题之后,还会有个一个新问题的,问题如下:
/opt/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: unrecognized option '--fix-cortex-a53-843419'
/opt/android-ndk-r10d/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/lib/gcc/aarch64-linux-android/4.9/../../../../aarch64-linux-android/bin/ld: use the --help option for usage information
clang++: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [/opt/obj/local/arm64-v8a/libhello.so] Error 1
现在这篇我的ndk版本是android-ndk-r10e的NDK(http://dl.google.com/android/ndk/android-ndk-r10e-linux-x86_64.bin)
一定要用这个,一定要用这个,一定要用这个,要不然各种苦逼的错误,我试了很多个版本了,就这个版本是编译成功的
错误提示1:
aarch64-linux-android-g++: error: unrecognized command line option '-mllvm'
aarch64-linux-android-g++: error: unrecognized command line option '-fla'
aarch64-linux-android-g++: error: unrecognized command line option '-mllvm'
aarch64-linux-android-g++: error: unrecognized command line option '-sub'
make: *** [/opt/obj/local/arm64-v8a/objs/hello/hello.o] Error 1
解决办法:
去ndk的目录 /opt/android-ndk-r10e/build/core 找到setup-toolchain.mk这个文件进行修改,添加你的工具链名称标识
最后终于编译成功,耗时3天,途中各种ndk的版本都试过,苦逼
ndk-build命令的常用参数:
ndk-build -B 重新编译
ndk-build V=1 打印出编译命令
ndk-build APP_ABI="arm64-v8a" 指定编译的目标平台类型
参考来源:
http://www.qingpingshan.com/m/view.php?aid=222774
https://stackoverflow.com/questions/39030293/o-llvm-unrecognized-command-line-option-sub-for-64bits