Android NDK Eclipse CDT 不允许我使用字符串的 substr 方法

标签 android c++ android-ndk substring eclipse-cdt

即使像这样简单的代码也会出错

string test= "hello";
string part = test.substr(2, 3);

无效参数候选者是:STLpmtx_std::basic_string,STLpmtx_std::allocator> substr(?, ?)

即使转换为 size_t 也无济于事 字符串部分 = test.substr((size_t)2, (size_t)3);

但是当在 Linux 上使用 gcc 4.6 作为控制台应用程序运行时,这两段代码都可以正常工作。 但是当使用 Androind NDK 时,它给了我错误。

如果我在编辑器中关闭文件并关闭 Eclipse,然后打开 Eclipse 并构建它编译的项目。但如果我打开文件,它就会抛出错误。

我在 Application.mk 生成文件中使用 APP_STL:= STLport_static

是的,我确实包含了

编辑:我刚刚查看了 .so 文件的时间,即使 Eclipse 显示错误,它似乎仍在编译。

最佳答案

我找到了解决方案,我需要在项目属性的路径和符号部分中包含 STLport 系统包含文件夹 -> C/C++ General

path_To_NDK/sources/cxx-stl/system/include

我只有

 path_To_NDK/sources/cxx-stl/stlport/stlport

关于Android NDK Eclipse CDT 不允许我使用字符串的 substr 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18040424/

相关文章:

java - Crashlytics 错误 - 此应用依赖于 Crashlytics。请注册访问

java - 使用 LibGDX 顺时针旋转图像

c++ - 初始化并插入优先级队列 (C++)

c++枚举并使用它们从用户输入

android - 低级流媒体 : A new API based on Khronos OpenMAX AL 1. 0.1

android - ndk-build eclipse 参数 : not find class

java - 如何缩小sqlite数据库?

android - PreferenceFragment 是否有意从兼容性包中排除?

c++ - Xcode 对强制转换的赋值是非法的,不支持左值强制转换?

android - 如何将 .cpp 包含文件添加到 android.mk 中的依赖项?