llvm在android ndk工具链中有什么用途?
简单回顾一下:
我在ubuntu上用gradlew构建我的本地项目,目标是arm和x86_64架构。似乎
LLVM
用于调用C/C++编译器
arm-linux-androideabi-4.9
以及
X86Y64
(?)
以下摘自
armeabi-v7a/ndkbuild_build_输出.log:
/home/mypc/android/android-ndk-r17c/toolchains/llvm/prebuild/linux-x86_64/bin/clang++
-mmd-mp-mf/home/mypc/git/android-project-1/build/mediates/ndkbuild/debug/obj/local/armeabi-v7a/objs-debug/module-5/stream-cpp.o.d
-gcc toolchain/home/mypc/android/android-ndk-r17c/toolchains/arm-linux-androideabi-4.9/prebuild/linux-x86_
-fpic-ffunction sections-funwind tables-fstack protector strong-wno无效的命令行参数…
……以下摘自
x86_64/ndkbuild_build_output.log:
/home/mypc/android/android-ndk-r17c/toolchains/llvm/prebuild/linux-x86_64/bin/clang++
-mmd-mp-mf/home/mypc/git/android-project-1/build/intermediates/ndkbuild/debug/obj/local/x86-64/objs-debug/module-5/stream-cpp.o.d
-gcc toolchain/home/mypc/android/android-ndk-r17c/toolchains/x86_64-4.9/prebuild/linux-x86_64
-目标x86_64-none-linux-android-ffunction sections-funwind tables-fstack protector strong-fpic-wno无效的命令行参数…
“…”表示这条单行命令有一个长长的尾部,我已经删掉了。
个人文件夹和项目的名称已更改。
让我们看看android ndk的内部是什么
工具链
文件夹:
myacc:~/.../android-ndk-r17c/toolchains$ tree -L 1
.
âââ aarch64-linux-android-4.9
âââ arm-linux-androideabi-4.9
âââ llvm
âââ mips64el-linux-android-4.9
âââ mipsel-linux-android-4.9
âââ NOTICE-MIPS
âââ NOTICE-MIPS64
âââ renderscript
âââ x86-4.9
âââ x86_64-4.9
我很困惑。我想
LLVM
是一种工具链,因为它放在这里,紧挨着其他工具链。再说一遍,llvm在android ndk工具链中的实际用途是什么?
谢谢你的帮助:)