Tôi gặp rắc rối biên soạn chương trình sau đâybiên dịch tập tin c sử dụng 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;
}
Kể từ khi tôi đang làm việc trên UNIX, tôi đang sử dụng lệnh sau đây để biên dịch tệp converter.c:
cc -I/usr/lib/jvm/java-6-openjdk/include converter.c -o libconverter.so
nhưng tôi nhận được các lỗi sau đây:
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â
Tôi đang làm gì vậy ??
Bạn đã đọc các thông báo lỗi chưa? Chúng cho bạn biết chính xác những gì còn thiếu: tên của các tham số trong chữ ký phương thức. –
Tôi nghĩ tôi cần nghỉ ngơi. Tôi không thể tin rằng tôi đã bỏ lỡ điều đó. – twidizle
Tên hàm là lạ. Hãy chắc chắn rằng tên là tên hàm hợp lệ. – qrtt1