首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当文件被找到时,为什么我会收到错误'java.lang.UnsatisfiedLinkError:无法加载库‘?

当文件被找到时,为什么我会收到错误'java.lang.UnsatisfiedLinkError:无法加载库‘?
EN

Stack Overflow用户
提问于 2022-04-05 11:20:43
回答 1查看 1.5K关注 0票数 2

为什么我收到这个错误,即使文件是明确的,它可以被读取?

我的项目是使用lwjgl和imgui。我在我的VM选项中添加了-Dimgui.library.path="libs“(其中存储了.dylib ),应用程序应该打开,显示演示IMGUI。

我还在下面发布了我的build.gradle文件:

代码语言:javascript
复制
plugins {
    id 'java'
}

group 'org.tpsgames'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
    flatDir {
        dirs 'libs'
    }
}

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
}

import org.gradle.internal.os.OperatingSystem

project.ext.lwjglVersion = "3.3.1"
project.ext.jomlVersion = "1.10.4"
project.ext.imguiVersion = '1.86.4'
project.ext.lwjglNatives = "natives-macos"

switch (OperatingSystem.current()) {
    case OperatingSystem.MAC_OS:
        project.ext.lwjglNatives = System.getProperty("os.arch").startsWith("aarch64") ? "natives-macos-arm64" : "natives-macos"
        break
}

repositories {
    mavenCentral()
}

dependencies {
    implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
    implementation "io.github.spair:imgui-java-app:1.86.4"
    implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
    implementation fileTree('libs') {include '*.jar'}
    ['', '-opengl', '-glfw'].each {
        implementation "org.lwjgl:lwjgl$it:$lwjglVersion"
        implementation "org.lwjgl:lwjgl$it::natives-macos"
    }
    implementation "io.github.spair:imgui-java-binding:1.86.4"
    implementation "io.github.spair:imgui-java-lwjgl3:1.86.4"
    implementation "io.github.spair:imgui-java-natives-macos:1.86.4"
    implementation "org.lwjgl:lwjgl"
    implementation "org.lwjgl:lwjgl-assimp"
    implementation "org.lwjgl:lwjgl-glfw"
    implementation "org.lwjgl:lwjgl-nfd"
    implementation "org.lwjgl:lwjgl-openal"
    implementation "org.lwjgl:lwjgl-opengl"
    implementation "org.lwjgl:lwjgl-stb"
    runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-nfd::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives"
    runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives"
    implementation "org.joml:joml:1.10.4"
}

test {
    useJUnitPlatform()
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-07 11:43:49

您的计算机很可能有一个具有ARM体系结构的CPU,例如M1芯片,而不是x86架构。

因此,JVM进程无法加载imgui-java64.dylib共享库,因为imgui目前只提供x86 CPU体系结构共享库,而不是ARM共享库。

请参阅这个GitHub问题:https://github.com/SpaiR/imgui-java/issues/123和这个(当前打开的) GitHub拉请求:https://github.com/SpaiR/imgui-java/pull/112添加对imgui的ARM支持。

您的唯一解决方案可能是将当前在该GitHub拉请求中完成的工作合并起来,并为您的ARM CPU在本地编译imgui,或者等到PR合并,以及imgui的发行版附带了macOS ARM共享库。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71750854

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档