有没有办法让Android NDK-build使用更新版本的gcc?
我安装了Android NDK r5b Windows版本,并使用cygwin编译C代码。
我看到 NDK-build 实际上正在调用 C:\android-ndk-r5b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-gcc-4.4.3 进行编译。我想知道是否有办法让NDK-build使用较新版本的gcc?
我想这样做的原因是:
Gcc4.4.3 已知存在为某些 NEON 内在函数生成非最佳汇编代码的错误
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43118
http://hilbert-space.de/?p=22
新发布的 GCC 4.6 声明它对 ARM 和内在函数有一些改进。所以我想尝试让 NDK-build 使用 GCC4.6。
I installed Android NDK r5b Windows version, and I use cygwin to compile the C code.
I see the NDK-build is actually calling
C:\android-ndk-r5b\toolchains\arm-linux-androideabi-4.4.3\prebuilt\windows\bin\arm-linux-androideabi-gcc-4.4.3 to compile. I wonder if there is a way to let NDK-build use a newer version of gcc?
The reason I want to do this is:
Gcc4.4.3 has known bug on generating not optimal assembly code for certain NEON intrinsics
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43118
http://hilbert-space.de/?p=22
The newly released GCC 4.6 claims that it has some improvements for ARM and intrinsics. So I want try to have NDK-build use GCC4.6.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我相信这个 NDK 文档可以回答您的问题:docs/STANDALONE-TOOLCHAIN.html。在我看来,您知道自己在做什么,所以只需注意警告并快乐黑客即可。我相信第 3 节“调用编译器(简单的方法)”就是您正在寻找的内容。
I believe your question would be answered by this NDK documentation: docs/STANDALONE-TOOLCHAIN.html. It sounds to me like you know what you're doing, so just heed the warnings and happy hacking. I believe section 3 "Invoking the compiler (the easy way)" is what you're looking for.
还有一个替代的 NDK 构建: http://www.crystax.net/en/android/ ndk/7
它包括 gcc 4.6.3。
There is an alternative NDK build: http://www.crystax.net/en/android/ndk/7
It includes gcc 4.6.3.
在尝试自己回答这个问题时,我遇到了这个,这是一个使用 GCC 4.6 成功构建工具链的人的分步说明:
While trying to answer this myself I came across this, which is a step-by-step account of a man who successfully built the toolchain with GCC 4.6: http://glandium.org/blog/?p=2146.
Android NDK 8b 发布,以 GCC 4.6 作为默认工具链。
http://developer.android.com/tools/sdk/ndk/index.html
Android NDK 8b is released, featuring GCC 4.6 as the default toolchain.
http://developer.android.com/tools/sdk/ndk/index.html