Ich versuche, den folgenden C++ Code für die Erstellung einer Java Virtual Machine zu kompilieren, mit Xcode unter Mac OS-X Mountain Lion:undefinierte Symbole für Architektur x86_64: JNI_CreateJavaVM OS-X Xcode
JNIEnv * createVM(JavaVM **jvm){
JNIEnv * retEnv = NULL;
JavaVMInitArgs vm_args = *new JavaVMInitArgs();
JavaVMOption *options = new JavaVMOption[1];
std::string sJavaInstallPath = "-Djava.class.path=" + findJavaPath();
if(sJavaInstallPath == "-Djava.class.path="){
return NULL;
}
options[0].optionString = const_cast<char*>(sJavaInstallPath.c_str());
vm_args.version = JNI_VERSION_1_6;
vm_args.nOptions = 1;
vm_args.options = options;
vm_args.ignoreUnrecognized = false;
long status = JNI_CreateJavaVM(jvm, (void**)&retEnv, &vm_args);
if(status == JNI_ERR){
std::cout << "Failure: Unable to load JVM \t Exit" << std::endl;
}else if(status == JNI_OK){
std::cout << "CreateVM:\t\tJVM loaded successfully" << std::endl;
}
delete options;
return retEnv;
};
Welche das gibt Folgefehler: Nicht definierte Symbole für Architektur x86_64: "_JNI_CreateJavaVM".
Aus diesen ähnlichen Fragen:
undefined reference to `JNI_CreateJavaVM' linux
How can I use JNI in C++ to use a Java class?
undefined symbol: JNI_CreateJavaVM in Linux
http://lists.apple.com/archives/java-dev/2005/Apr/msg00067.html
http://lists.apple.com/archives/java-dev/2005/Apr/msg00068.html
entnehme ich, dass ich einen Bibliotheksverweis fehlt bin libjvm.dylib. Das Problem ist, dass ich bin nicht sicher, wie Xcode erhalten, um die Bibliothek zum Verknüpfen zu erkennen/zu integrieren,
Ich habe versucht, die folgenden Verzeichnisse (die alle eine libjvm.dylib-Datei enthalten) in die Bibliothek Suchpfade setzen Liste in Xcode, ohne Ergebnis:
/System/Library//Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/
/Library//Java/JavaVirtualMachines/jdk1.7.0 _51.jdk/Inhalt/Home/jre/lib/server/
/System/Bibliothek/Framew orks/JavaVM.framework/Bibliotheken/
Ich bin noch recht neu zu OS-X und Xcode, und die Antworten auf die anderen Fragen beziehen sich alle auf die Erstellung gcc oder g ++ verwenden, die ich noch weniger Erfahrung haben mit, also was ich wissen muss ist: Wie sage ich dem Xcode Compiler, wo libjvm.dylib zu finden ist, und welche libjvm.dylib ist die, mit der ich verlinken soll?