查看和设置ndk使用的gcc版本

本文介绍了如何解决由于Android NDK不支持C++11的auto特性导致的编译错误问题。作者通过查看当前使用的NDK版本支持的toolchain,并尝试将编译器版本升级到GCC 4.7来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目使用的一个开源库更新后,发现在android平台编译出错了,因为他使用了c++11的auto特性,编译器尚未支持。

因为gcc4.8.1已经完全实现了c++11的特性,所以我需要看一下我使用的ndk支持哪些toolchain。

我使用的是ndk r8e (也是目前-2013.6月-的最新版),看一下他的toolchains目录,支持到了gcc4.7。根据他的文档,默认是使用了gcc4.6。

设置toolchain的方法是在Application.mk中设置:

NDK_TOOLCHAIN_VERSION = 4.7


为了确认是否设置成功,在ndk-build调用时增加参数V=1。即 ndk-build V=1 ..其他参数..


结果会显示:/Developer/sdks/android-ndk-r8e/toolchains/arm-linux-androideabi-4.7/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-g++ -MMD -MP -MF ....

所以可以看到设置成功了。


遗憾的是,gcc4.7仍然不支持auto:'o' does not name a type  (源码里的写法是:auto o = xxxxxx)


而我已经使用了最新的ndk了,只能等ndk升级到gcc4.8.1的toolchian了,或者自己去做一个,不过可花不起这个时间

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

n5

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值