ndk-r7无法识别va_list类型

问题描述:

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

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

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

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

这条线可以进行修改,以简单地读取

va_list args; 

提供的代码确实与va_start初始化,并且不认为这是堪比NULL