【问题标题】:Linker errors using LuaJava on OSX 10.5在 OSX 10.5 上使用 LuaJava 的链接器错误
【发布时间】:2011-01-02 17:46:28
【问题描述】:

我在让这个库在我的 OSX 安装上工作时遇到了很多问题。 特别是,我想将它与 Java 1.6 VM 一起使用,但在我编译它之后,我得到以下信息:

java -cp "luajava-1.1.jar" org.keplerproject.luajava.Console
Exception in thread "main" java.lang.UnsatisfiedLinkError: /Users/daniel/src/luajava- 1.1/libluajava-1.1.jnilib: 
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1822)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1739)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1030)
    at org.keplerproject.luajava.LuaState.<clinit>(LuaState.java:92)
    at org.keplerproject.luajava.LuaStateFactory.newLuaState(LuaStateFactory.java:59)
    at org.keplerproject.luajava.Console.main(Console.java:49)

我正在运行 OSX 10.5.8 和 Lua 5.1.4 我也将我的 OSX 默认虚拟机更改为 1.6.0:

/System/Library/Frameworks/JavaVM.framework/Home -> Versions/1.6.0/Home/
/System/Library/Frameworks/JavaVM.framework/Versions/Current -> 1.6.0/
/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK -> 1.6.0/

我做错了什么?我注意到当我使用 Java 1.5 时,一切都很好。除了我不想要 1.5,我想要 1.6。

【问题讨论】:

  • 不确定这是否有帮助,但您的错误消息在路径名“luajava- 1.1”中显示了一个空格。这看起来是无意的。

标签: java macos lua luajava


【解决方案1】:

这可能是一个线索,来自jnlua on luaforge,第 7 节。构建原生库

请注意,为 macos64 构建 LuaBinaries 平台目前是 不支持。这是由于 Java 6 在 Mac OS 只有 64 位和 LuaBinaries 仅提供 32 位 该平台的库。

我找不到任何其他直接参考,但鉴于您描述的症状,这似乎是一个合理的解释。 LuaJava 使用 LuaBinaries。

【讨论】:

    【解决方案2】:

    问题在于 Apple 仅在 Leopard 上发布了 64 位版本的 Java 6,这意味着所有 .jnilib 文件(和相关的依赖项)都需要/包含 64 位。 Leopard 上的 Java 5 有 32 位和 64 位版本。更令人困惑的是,Snow Leopard 32 位和 64 位版本的 Java 6。

    所以,总结一下:

    • 豹纹:
      • Java 5:32 和 64
      • Java 6:64
    • 雪豹:
      • Java 6:32 和 64

    【讨论】:

      【解决方案3】:

      我今天早上刚刚按照 Joe Huges 的这些旧指示开始工作:http://retrovirus.com/incr/2005/08/building-luajava/(需要进行一些细微的修改)。我在 2007 年(32 位)MBP 上使用 10.6。

      您描述的问题已通过将 libluajava-1.1.jnilib Java 库移动到 /Library/Java/Extensions/ 文件夹来解决。 -cp "luajava-1.1.jar" 标志将 jar 文件添加到您的路径,但仍需要添加库。

      【讨论】:

        【解决方案4】:

        你需要把 luajava.jnilib 文件放到你的 /System/Library/Frameworks/JavaVM.framework/Library 目录下。

        【讨论】:

          猜你喜欢
          • 2013-09-10
          • 2012-08-12
          • 2012-03-24
          • 2011-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多