C++ 在scala中加载本机库时出错

C++ 在scala中加载本机库时出错,c++,scala,java-native-interface,C++,Scala,Java Native Interface,我将C++构建成 hello .dll 库,在Scala中使用它。 当我用System.loadLibrary(“hello”)加载它时,会出现异常: java.lang.UnsatisfiedLinkError:C:\Users\ducnm4\Desktop\mdb\u scala\hello.dll:找不到依赖库。 指向hello.dll的路径是正确的,因此我不知道为什么会发生这种情况?您的dll依赖另一个dll,但在路径中找不到该dll 通常,另一个DLL是MSVC运行时(命名为类似msv

我将C++构建成<代码> hello .dll <代码>库,在Scala中使用它。 当我用
System.loadLibrary(“hello”)
加载它时,会出现异常:

java.lang.UnsatisfiedLinkError:C:\Users\ducnm4\Desktop\mdb\u scala\hello.dll:找不到依赖库。


指向
hello.dll
的路径是正确的,因此我不知道为什么会发生这种情况?

您的dll依赖另一个dll,但在路径中找不到该dll


通常,另一个DLL是MSVC运行时(命名为类似msvcr*.DLL的东西)。用于准确确定缺少哪些依赖项。找到它们并将它们复制到Dll所在的文件夹中。

我不这么认为,我正在尝试理解JNI,并找到一些关于它的教程,Dll只包含一个功能:打招呼,那么它会缺少什么?我提到的网站对此只字未提,如果你不想使用Dependency Walker,好吧,继续搜索网站。希望它能帮助你解决你的问题。MSVCRTXXX.DLL是微软C++运行时。所有的C++ DLL都依赖于它。但是,如果它与您构建dll的机器在同一台机器上,它肯定应该在系统上。我确实使用了DW,发现我错过了cygwin1.dll。提前感谢:D现在,当我运行它时,它变成了一个新错误,我无法访问cygwin1.dll文件抛出错误异常\u访问\u违反这是一个不同问题的不同问题。使用调试器。