我看很多教程里用的都是这个 https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/,这个 Google 官方的 Pre-built binary ,甚至还有给每个安卓版本的分支,比如我编译的是 android12 的内核最好是不是用 android12-gsi 这个分支的编译器?
之前试了下,用 Ubuntu22.04 源里的 clang 10.0.0 似乎没有问题,编译的内核正常。但是后来换到另一台 debian 环境的机器,上面 PATH 里的 clang 是 16.0.5 的,编译出来的内核能 boot 到锁屏界面,但是不出几秒钟之后就死机,然后自动重启。
反复编译测试了几次都是如此,确认所有 source ,defconfig ,脚本,流程等等都一模一样,就是环境&编译的区别,编译过程也没有报错或报 warning 。看来编译器玄学/bug/来带 bug 是可能的。因此想问一下,最佳实践是用哪的编译器比较好,有没有一个“官方御用 clang binary”之类的东西?虽然 clang 10.0.0 或者那个 Google 的 git 里的也许看起来没问题,但是不知道会不会有其它隐性 bug....
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.