Mam problemy kompilowanie następujący programkompilacji pliku c, która wykorzystuje jni.h
PPConverter.java:
public class PPConverter {
private native void convert(String s);
public static void main(String[] args){
new PPConverter().convert(args[0]);
}
static {
System.loadLibrary("converter");
}
}
converter.c:
#include <jni.h>
#include <stdio.h>
#include "PPConverter.h"
JNIEXPORT void JNICALL Java_PPConverter_convert (JNIEnv *, jobject, jstring){
printf(jstring);
return;
}
Ponieważ pracuję nad W systemie UNIX do kompilowania pliku converter.c używam następującego polecenia:
cc -I/usr/lib/jvm/java-6-openjdk/include converter.c -o libconverter.so
ale otrzymuję następujące błędy:
converter.c: In function âJava_PPConverter_convertâ:
converter.c:5: error: parameter name omitted
converter.c:5: error: parameter name omitted
converter.c:5: error: parameter name omitted
converter.c:6: error: expected expression before âjstringâ
Co robię źle ??
Czy przeczytałeś komunikaty o błędach? Mówią dokładnie, czego brakuje: nazwy parametrów w sygnaturze metody. –
Myślę, że muszę odpocząć. Nie mogę uwierzyć, że tęskniłem za tym. – twidizle
Nazwa funkcji jest dziwna. Upewnij się, że nazwa jest prawidłową nazwą funkcji. – qrtt1