Я пытаюсь построить .c файл на OSX, но я получаю:JNI построить C файл (Неопределенные символы для архитектуры x86_64)
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