Android NDK独立编译链

Posted 不会写代码的丝丽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android NDK独立编译链相关的知识,希望对你有一定的参考价值。

参考

独立工具链(已弃用)
Cross-compilation using Clang

这段时间复习NDK的时候发现已经在(r21)里面已经完全找不到gcc/g++的影子了,后来发现改用LLVM套件了。
于是乎想爽一把单独使用clang进行单独编译成arm的可执行文件,但是--sysroot 等设置了都死活编译不起来报错如下:

clang: error: unable to execute command: program not executable
clang: error: linker command failed with exit code 1 (use -v to see invocation

于是自己检查了下ndk提供的sysroot发现里面都变化了
在这里插入图片描述
发现里面多了lib目录abi选择的文件夹,include目录也是
在这里插入图片描述

于是想着自己倒腾一个sysroot文件夹再去编译,发现还是失败,调用clang --help发现没有--sysroot选项说明,后来发现android的llvm提供了一个参数-target可以让我们快速选择abi,而不是像gcc那么繁琐。(简直爽)
比如下面的代码:

clang --target=armv7a-linux-androideabi27

最后发现为了方便我们使用ndk提供封装的脚本
在这里插入图片描述

比如说x86_64-linux-android30-clang.cmd·文件如下内容
在这里插入图片描述

以上是关于Android NDK独立编译链的主要内容,如果未能解决你的问题,请参考以下文章

NDK交叉编译之自定义工具链

使用独立工具链 android arm 构建本机库

集成CLion和Android NDK

sh 为Android开发构建Google Protobuf库。用android ndk独立工具链。

linux / uinput.h缺少32位arm android ndk独立工具链?

[RK3568][Android11]使用cmake编译Android可执行程序