【发布时间】:2012-12-17 23:46:28
【问题描述】:
我是 C/C++ 和 Android NDK 的初学者,在尝试创建本机库时遇到问题。我的代码在 CDT 上使用 MinGW 进行编译,但是当我在 JNI 文件上编写相同的代码时,出现错误。
我的代码是:
int n = 7;
int positions[n];
int final_order[n];
memcpy(positions, final_order,sizeof(final_order));
插件向我展示了:
Invalid arguments 'Candidates are: void * memcpy(void *, const void *, ?)'
这是来自 CDT 上 MinGW 的标头:
_CRTIMP void* __cdecl __MINGW_NOTHROW memcpy (void*, const void*, size_t);
这是来自 Android NDK 的标头:
extern void* memcpy(void *, const void *, size_t);
【问题讨论】:
-
文件开头加
#include <string.h>了吗? -
@MārtiņšMožeiko 是的,有一个#include
-
请注意,这不是 ndk 的编译器错误,而是不必要的 eclipse 插件过于迂腐。
-
@ChrisStratton 有办法在插件上更改它吗?忽略?
-
我确信有办法改变 C 插件的行为,但我发现禁用(或者更准确地说,甚至从不安装)插件更简单。 NDK 的实际编译器与插件不同,后者是工具集中相对较新的新增功能。
标签: android c android-ndk