Android NDK独立编译链

淡淡的烟草味﹌ 2022-10-16 09:50 285阅读 0赞

参考

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

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

  1. clang: error: unable to execute command: program not executable
  2. 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那么繁琐。(简直爽)
比如下面的代码:

  1. clang --target=armv7a-linux-androideabi27

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

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

发表评论

表情:
评论列表 (有 0 条评论,285人围观)

还没有评论,来说两句吧...

相关阅读