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
。