gpt4 book ai didi

java-native-interface - 架构 x86_64 : JNI_CreateJavaVM OS-X Xcode 的 undefined symbol

转载 作者:行者123 更新时间:2023-12-04 18:42:35 26 4
gpt4 key购买 nike

我正在尝试编译以下 C++ 代码来创建 Java 虚拟机,在 Mac OS-X Mountain Lion 上使用 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;
};

这给出了以下错误:
体系结构 x86_64 的 undefined symbol :“_JNI​​_CreateJavaVM”。

从这些类似的问题:

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

我发现我缺少对 libjvm.dylib 的库引用。问题是我不确定如何让 Xcode 识别/包含用于链接的库,

我尝试将以下目录(所有这些目录都包含一个 libjvm.dylib 文件)放入 Xcode 的库搜索路径列表中,但没有结果:

/System/Library//Java/JavaVirtualMachines/1.6.0.jdk/Contents/Libraries/

/Library//Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/server/

/System/Library/Frameworks/JavaVM.framework/Libraries/

我对 OS-X 和 Xcode 还是很陌生,其他问题的答案都与使用 gcc 或 g++ 编译有关,我对此的经验更少,所以我需要知道的是:我如何告诉Xcode 编译器在哪里可以找到 libjvm.dylib,以及哪个 libjvm.dylib 是我应该链接到的?

最佳答案

好的,找到了解决方案,

相当于 g++ 的

-L<library/to/link>

Xcode 中的设置是 将二进制文件与库链接 下的设置构建阶段 标签,
不是我上面提到的图书馆搜索路径列表。

而我需要链接的库实际上是/System/Library/Frameworks/JavaVM.framework/ JavaVM ,

不是 libjvm.dylib

关于java-native-interface - 架构 x86_64 : JNI_CreateJavaVM OS-X Xcode 的 undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22397076/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com