clojure - 在Leiningen/Clojure中使用lwjgl

标签 clojure

解决方案

(1) (println (. System getProperty "java.library.path"))

这为我提供了Java查找 native 扩展的位置列表。

然后,我使用了lwjgl native 扩展,并将其放在那里。

对我不起作用的事情(可能是因为我使用不正确)
(*) setting :native-path
(*) setting :native-dependencies

问题

我的设置:
(lein deps; echo "====="; cat project.clj; echo "====="; cat src/main.clj; echo "====="; lein repl) &> log

“日志”的内容
    Copying 10 files to /Volumes/ramdisk/fail/lib
=====
(defproject
  mincase "0.0.1"
  :dependencies [[org.clojure/clojure "1.4.0"]
                 [org.lwjgl.lwjgl/lwjgl "2.8.2"] ]
  :repositories {"local" "/Users/x/z/maven_repo"}
  :jvm-opts ["-Xms4g"  "-Xmx4g"]
  :repl-init main
  )

=====
(ns main
 (:import org.lwjgl.opengl.Display)) 
=====
REPL started; server listening on localhost port 31235
UnsatisfiedLinkError no lwjgl in java.library.path  java.lang.ClassLoader.loadLibrary (ClassLoader.java:1860)
clojure.core=> 

注意-我已经做过一个“lein deps”,所以lwjgl库已经被拉入Maven了。我不明白的是:
(*) how do I get access to lwjgl from Clojure?
(*) more importantly, how do I debug which step this whole thing has gone wrong at?

$查找库
lib
lib/clojure-1.4.0.jar
lib/jinput-2.0.5.jar
lib/jinput-platform-2.0.5-natives-linux.jar
lib/jinput-platform-2.0.5-natives-osx.jar
lib/jinput-platform-2.0.5-natives-windows.jar
lib/jutils-1.0.0.jar
lib/lwjgl-2.8.2.jar
lib/lwjgl-platform-2.8.2-natives-linux.jar
lib/lwjgl-platform-2.8.2-natives-osx.jar
lib/lwjgl-platform-2.8.2-natives-windows.jar

因此,看来lwjgl已被拉入。

我应该尝试哪些步骤才能弄清楚我在哪一步出错了?

谢谢!

最佳答案

看来您的LD_LIBRARY_PATH有问题。您是否包含正确的.dll.so文件?

您可能需要在:native-dependencies [[lwjgl "2.8.2"]]中添加类似project.clj的内容。

另外,您可以尝试从shell中设置正确的值:

export LD_LIBRARY_PATH=/home/username/lwjgl-2.8.2/native/linux/

关于clojure - 在Leiningen/Clojure中使用lwjgl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10558795/

相关文章:

swing - 图标消失在由 Leiningen 制作的 uberjar 中

clojure - 惰性序列内部的惰性序列的实现是否发生差异

ide - Clojure 开发 : IDE or REPL?

clojure - 有没有一种从 Clojure 中使用 JasperReports 的简单方法?

clojure - 为什么 refind 返回一个包含两个元素的向量?

clojure - Clojure、Scheme/Racket 和 Common Lisp 之间有什么区别?

clojure - 更改 Clojure 中的映射行为

clojure - 为什么使用 lein run 按 ENTER 键后 read-line 不返回(看起来像是挂起),但使用 lein repl 却可以?

clojure - 从其他命名空间导入记录时出现 ClassNotFoundException

clojure - Clojure 中大型 map 的性能