gpt4 book ai didi

Java JNI : Can't load dependent libraries

转载 作者:行者123 更新时间:2023-11-30 17:30:53 29 4
gpt4 key购买 nike

我有一个 Java JNI 方法调用。我编写了 C 代码来定义该函数。这非常有效。但是如果我在我的 c 文件中导入另一个头文件,那么我无法加载这个 h 文件,并且出现以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: a/b/c/alibrary.dll: Can't find dependent libraries
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1965)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1890)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1880)
at java.lang.Runtime.loadLibrary0(Runtime.java:849)
at java.lang.System.loadLibrary(System.java:1088)
at a.b.c.D.<clinit>(EyeXTracker.java:13)

我的 alibrary.dll 文件如下所示:

#include <Windows.h>
#include <stdio.h>
#include <conio.h>
#include <assert.h>
#include "a_b_c_D.h"
#include "se.h"

#pragma comment (lib, "a.lib")

JNIEXPORT void JNICALL
Java_a_b_c_D(JNIEnv *env, jobject obj)
{
printf("Hello World!\n");
return;
}

没有最后一个包含语句,它工作得很好。那么我该怎么做才能正确加载 se.h 文件呢?

最佳答案

您的问题不是 se.h,而是 se.h 中声明的任何内容所需的 DLL。

如果您不需要其中的任何内容,请不要包含该文件。如果您确实需要它,请阅读其文档,或询问编写它的人,需要什么。如果不知道 se.h 是什么,就很难提供更详细的答案。

关于Java JNI : Can't load dependent libraries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24867307/

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