0
我試圖建立在OSX .c文件,但我不斷收到(適用於建築x86_64的未定義符號):JNI編譯C文件
Undefined symbols for architecture x86_64
#include "Test.h"
JNIEXPORT jint JNICALL Java_Test_test
(JNIEnv * env, jclass cls, jbyteArray s, jlong ss, jbyteArray sss, jlong ssss, jbyteArray sssss, jlong ssssss) {
/*printf("Hello World!\n");*/
return 1;
}
建有:
clang++ -o test -I/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/include -I/Library/Java/JavaVirtualMachines/jdk1.8.0_65.jdk/Contents/Home/include/darwin Test.cpp
Undefined symbols for architecture x86_64: "_main", referenced from:
implicit entry/start for main executable ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
有什麼我需要安裝嗎?
可能不是正確的答案,因爲JNI模塊是一個共享對象,您將生成一個直接的目標文件。 –
@MichaelPetch:對啊,這很有道理。 「-fPIC -shared」應該是正確的,IIRC。 –
OP說OSX所以它可能應該是'.dylib'或'.jnilib'(我給文件一個'lib'前綴,而不是現在缺少'-o'的命令?) – user2543253