Ich habe Probleme beim Kompilieren das folgende ProgrammKompilieren c-Datei, die jni.h verwendet
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;
}
Da arbeite ich an UNIX, ich verwende den folgenden Befehl, um die Datei converter.c zu kompilieren:
cc -I/usr/lib/jvm/java-6-openjdk/include converter.c -o libconverter.so
aber ich erhalte die folgenden Fehler:
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â
Was mache ich falsch ??
Haben Sie die Fehlermeldungen gelesen? Sie sagen Ihnen genau, was fehlt: die Namen der Parameter in der Methodensignatur. –
Ich denke, ich muss mich ausruhen. Ich kann nicht glauben, dass ich das verpasst habe. – twidizle
Der Funktionsname ist seltsam. Stellen Sie sicher, dass der Name der gültige Funktionsname ist. – qrtt1