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 resolve

于 2013-02-21T08:10:43.970 に答える
0

va_listポインターであるとは限りません。そのコードは有効ではありません C.

その行は、単純に読み取るように変更できます

va_list args;

ただし、コードが で初期化し、va_startと同等であるとは想定していませんNULL

于 2013-02-21T08:12:03.813 に答える