Tengo problemas para compilar el siguiente programala compilación de archivos que utiliza c 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;
}
Desde que estoy trabajando UNIX, estoy usando el siguiente comando para compilar el archivo converter.c:
cc -I/usr/lib/jvm/java-6-openjdk/include converter.c -o libconverter.so
pero estoy consiguiendo los errores siguientes:
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â
¿qué estoy haciendo mal ??
¿Has leído los mensajes de error? Te dicen exactamente lo que falta: los nombres de los parámetros en la firma del método. –
Creo que necesito descansar. No puedo creer que me haya perdido esa. – twidizle
El nombre de la función es extraño. Asegúrese de que el nombre sea el nombre de función válido. – qrtt1