在Eclipse中使用Android NDK时,无法解析类型size_t

7

我遇到了以下错误:"Type 'size_t' could not be resolved",这是在一个Android NDK项目中。但是我已经添加了库路径:

/Users/ademar/android-ndk-r8e/platforms/android-8/arch-arm/usr/include
/Users/ademar/android-ndk-r8e/sources/cxx-stl/stlport/stlport
/Users/ademar/android-ndk-r8e/sources/cxx-stl/gnu-libstdc++/4.7/include

所以我不明白为什么会出现这个错误。


出错的代码:

static inline bool simplejson_wcsnlen(const wchar_t *s, size_t n)

我已经添加了这里描述的各个标头,但仍未生效。


我尝试了以下方法:

#include <string.h>
#include <jni.h>
#include <android/log.h>
#include <iostream>
#include <stdio.h>

extern "C" {
    JNIEXPORT jstring JNICALL Java_xxx_getStringFromJNI(JNIEnv* env, jobject thiz, jstring param) {
        size_t x;
        return env->NewStringUTF("test");
    }
}

而且它也不起作用...


请发布有问题的代码。 - Anon Mail
我认为你需要包含定义 size_t 的头文件,而且你可能需要使用 std::size_t。 - Anon Mail
@AnonMail,我已经添加了'<stdio.h>'头文件,使用std::是正确的吗?但是与它一起使用不起作用 :/ - ademar111190
1个回答

17

size_t在stddef.h中定义,这是与编译器有关的。为了将其添加到包含路径中,您需要将/toolchain//prebuilt//lib/gcc///include添加到您的路径中。

例如,在64位Windows机器上构建Android应用程序使用NDK时,您需要将<NDK-PATH>\toolchains\arm-linux-androideabi-4.8\prebuilt\windows-x86_64\lib\gcc\arm-linux-androideabi\4.8\include添加到您的路径中。


2
预处理器包括,宏等 -> 条目(CDT用户条目)-> 添加并检查 -> 包含系统头文件 - leanid.chaika

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接