ndk-r7无法识别va_list类型

时间:2013-02-21 08:01:01

标签: android

我在Eclipse中设置了ndk-r7编译环境,并编译了.so库文件的C代码。然后无法识别和编译va_lsit类型的C代码。

编译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;
}

2 个答案:

答案 0 :(得分:0)

可能NDK version 8错误将消失,否则请查找类似问题的解决方案:Android NDK: Function va_start / va_end could not be resolved

答案 1 :(得分:0)

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

该行可以修改为简单阅读

va_list args;

如果代码使用va_start对其进行初始化,并且不认为它与NULL相当。