gpt4 book ai didi

android - 为android ndk中的线程编译c++代码时memset出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:56:45 24 4
gpt4 key购买 nike

我有一个问题。我想在 Android 2.3.4 中使用 NDK r7 创建一个线程。当我编译这段代码时:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "System.h"
#include <jni.h>
#include <pthread.h>

unsigned int CreateThread(void* function(void*) , void * context)
{ int ret;
pthread_t thread;
ret = pthread_create(&thread, NULL, function, context);
if(ret != 0)
{ return 0;
}
return (unsigned int) thread;
}

我收到这些错误消息:

E:/Code/Android/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.4.3/include/stdarg.h:102: error: expected ';' before 'typedef'
In file included from E:/Code/Android/android-ndk-r7/platforms/android-14/arch-arm/usr/include/pthread.h:32, from jni/system.cpp:13:
E:/Code/Android/android-ndk-r7/platforms/android-14/arch-arm/usr/include/signal.h: In function 'int sigemptyset(sigset_t*)':
E:/Code/Android/android-ndk-r7/platforms/android-14/arch-arm/usr/include/signal.h:84: error: 'memset' was not declared in this scope
E:/Code/Android/android-ndk-r7/platforms/android-14/arch-arm/usr/include/signal.h: In function 'int sigfillset(sigset_t*)':
E:/Code/Android/android-ndk-r7/platforms/android-14/arch-arm/usr/include/signal.h:90: error: 'memset' was not declared in this scope

我是否错过了包含或定义某些内容以获取 memset 错误?

我真的不确定问题是什么以及为什么会出现 memset 错误。我也尝试包含 cstring,但后来出现大量错误。

最佳答案

我发现了问题。我有自己的类,它有一个名为“string.h”的文件名,位于我的 jni 目录中。因此,驻留在 ndk 中并具有必要 memset 函数(以及其他函数)声明的“string.h”未包含在内。

选项是要么更改我的类的文件名/名称,要么直接包含来自 ndk 的 string.h 和直接路径。

我选择了第一个选项并重命名了我的字符串类,并尝试从现在开始不为我的类使用标准文件名......

关于android - 为android ndk中的线程编译c++代码时memset出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8630068/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com