gpt4 book ai didi

java - JOGL 导出到 Windows 8 并出现不满意的链接错误

转载 作者:行者123 更新时间:2023-12-01 13:20:56 27 4
gpt4 key购买 nike

我一直在使用 JOGL 图形库编写一个游戏,当我导出这个游戏时,它只能在我的机器上运行。我的处理器是 Windows 7 上的 AMD Phenom II X4 840 处理器,主频为 3.2 GHz。当我导出游戏并使用 CMD 运行时,游戏运行良好且没有错误。

但是,当在我 friend 的计算机上运行时,我收到不满意的链接错误。他的计算机配备 AMD A6-4400M APU,运行 Windows 8。

错误消息似乎非常模糊,我无法解决该问题。

Exception in thread "main" java.lang.UnsatisfiedLinkError:jogamp.opengl.windows.wgl.WGL.dispatch_wglGetProcAddress0(Ljava/lang/String;J)J
at jogamp.opengl.windows.wgl.WGL.dispatch_wglGetProcAddress0(Native Method)
at jogamp.opengl.windows.wgl.WGL.wglGetProcAddress(WGL.java:276)
at jogamp.opengl.windows.wgl.WindowsWGLDynamicLibraryBundleInfo.toolGetProcAddress(WindowsWGLDynamicLibrar yBundleInfo.java:57)
at com.jogamp.common.os.DynamicLibraryBundle.toolDynamicLookupFunction(DynamicLibraryBundle.java:341)
at com.jogamp.common.os.DynamicLibraryBundle.dynamicLookupFunction(DynamicLibraryBundle.java:369)
at com.jogamp.gluegen.runtime.opengl.GLProcAddressResolver.resolve(GLProcAddressResolver.java:54)
at com.jogamp.gluegen.runtime.ProcAddressTable.setEntry(ProcAddressTable.java:177)
at com.jogamp.gluegen.runtime.ProcAddressTable.reset(ProcAddressTable.java:145)
at jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory$1.run(WindowsWGLDrawableFactory.java:100)
at jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory$1.run(WindowsWGLDrawableFactory.java:93)
at java.security.AccessController.doPrivileged(Native Method)
at jogamp.opengl.windows.wgl.WindowsWGLDrawableFactory.<init>(WindowsWGLDrawableFactory.java:93)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.jogamp.common.util.ReflectionUtil.createInstance(ReflectionUtil.java:171)
at com.jogamp.common.util.ReflectionUtil.createInstance(ReflectionUtil.java:193)
at com.jogamp.common.util.ReflectionUtil.createInstance(ReflectionUtil.java:213)
at com.jogamp.common.util.ReflectionUtil.createInstance(ReflectionUtil.java:235)
at javax.media.opengl.GLDrawableFactory.initSingletonImpl(GLDrawableFactory.java:166)
at javax.media.opengl.GLDrawableFactory.initSingleton(GLDrawableFactory.java:129)
at javax.media.opengl.GLProfile.initProfilesForDefaultDevices(GLProfile.java:1573)
at javax.media.opengl.GLProfile.access$100(GLProfile.java:76)
at javax.media.opengl.GLProfile$1.run(GLProfile.java:155)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.opengl.GLProfile.initSingleton(GLProfile.java:123)
at javax.media.opengl.GLProfile.getDefaultDevice(GLProfile.java:1837)
at javax.media.opengl.awt.GLJPanel.<init>(GLJPanel.java:337)
at javax.media.opengl.awt.GLJPanel.<init>(GLJPanel.java:291)
at javax.media.opengl.awt.GLJPanel.<init>(GLJPanel.java:282)
at main.Main.<init>(Main.java:73)
at main.Main.main(Main.java:94)

我的代码 73 和 94 中的行是:

73:canvas = new GLJPanel();

94: final Main main = new Main();//当我初始化主类时

导出时我的布局如下:

  • 元信息
  • Q_lib
  • Q.jar
  • run.bat(只需 java -jar Q.jar 即可运行 jar 文件)。

在 jar 文件 Q.jar 中,我拥有所有类型系统的所有 .dll。

如果您需要我的主类中的更多代码,我可以将其发布,否则太长了,无法在这里发布。

任何帮助将不胜感激。

最佳答案

您必须关注this rule允许 GlueGen 在制作 fat JAR 时找到 native 库,否则它将不知道在哪个目录中查看它们,它不会提取它们,它们不会被加载,并且您将收到不满意的链接错误。我建议您将有关 JOGL 的技术问题发布到其 official forum将来只有极少数 JogAmp 贡献者和维护者来到这里。

编辑:永远不要将 native 库或 JAR 直接放入 JVM,以避免运行小程序和应用程序时发生冲突。

关于java - JOGL 导出到 Windows 8 并出现不满意的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22031559/

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