0

我已经在Eclipse中搭建了ndk-r7编译环境,并为.so库文件编译了C代码。那么C代码的va_lsit类型就无法识别和编译。

当我编译ndk的示例代码时没有问题。但它没有在示例中使用 va_list 类型。它有 stdarg.h。它在 ndk 目录的一些 stdarg.h 中有 va_list 定义。

像这样的错误:

jni/CommAbstractLayer.c: In function 'SetCommunicationLineVoltage':
jni/CommAbstractLayer.c:1414: error: invalid initializer(this line points the following line: va_list   args = NULL;)

像这样的代码:

#include <stdarg.h>
......
W_INT2 SetCommunicationLineVoltage(BYTE ucChangeTimes, ...)
{
va_list args = NULL;
......
return 0;
}
4

2 回答 2

0

也许使用NDK 版本 8错误会消失,否则寻找类似问题的解决方案:Android NDK: Function va_start / va_end could not be resolved

于 2013-02-21T08:10:43.970 回答
0

va_list不保证是指针;该代码无效 C.

该行可以修改为简单地阅读

va_list args;

前提是代码确实使用 初始化它va_start并且不假定它与NULL.

于 2013-02-21T08:12:03.813 回答