【C++】nomember named ‘to_string‘ in namespace ‘std’

在使用Android Studio进行C++编程时遇到'nomembernamed'to_string'innamespace'std''错误,原因是NDK使用了最小STL库。解决方法是在build.gradle文件的cmake配置中添加'-DANDROID_STL=c++_shared',或者尝试升级NDK版本至21。参考解决方案提及了gradle和CMake的配置以及STL库的选择。
摘要由CSDN通过智能技术生成

在使用 Android Studio 编写 C++ 代码时,出现如下错误:

nomember named 'to_string' in namespace 'std'

原因:
这是因为 NDK 中默认使用的是最小的 STL 库,所以就会产生这个问题。

解决方法:

  • 方法1:修改 gradle
    在 build.gradle 文件的 cmake 配置处配置 NDK 使用的 STL 库版本:
externalNativeBuild {
    cmake {
        arguments "-DANDROID_STL=c++_shared"  //添加此行
    }
}
  • 方法2:升级 NDK 的版本(未测试)
    听朋友说升级 NDK 的版本也可以避免出现此问题(从 16 升级到 21 ),未尝试。

参考文件:

  1. Error: no member named ‘to_string’ in namespace ‘std’; did you mean ‘toString’? Gradle+Cmake
  2. Android中CMake的使用之四调用第三方库的实战
  3. ANDROID_STL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值