我在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;
}
答案 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
相当。