저는 sbt 0.13을 사용 중이며 issue #358이 해결 된 후에도 sbt에서 leveldbjni 기본 라이브러리를 사용하는 데 문제가 있습니다. A similar issue은 이미 sbt 0.13이 솔루션을 제공해야한다고보고되었지만 그렇지 않은 것으로 보입니다. 그래서 저는 여기에서 제 관찰을 공유하고 있습니다.sbt에서 기본 라이브러리가있는 UnsatisfiedLinkError
다음 예제 응용 프로그램과 함께 UnsatisfiedLinkError
이 표시됩니다.
build.sbt
name := "example" version := "0.1" scalaVersion := "2.10.2" libraryDependencies += "org.fusesource.leveldbjni" % "leveldbjni-all" % "1.7"
build.properties
sbt.version=0.13.0
-
import org.fusesource.leveldbjni.internal._ object Example extends App { NativeDB.LIBRARY.load() // loading succeeds new NativeOptions() // UnsatisfiedLinkError under sbt }
Oracle JDK 1.7 및 OS X 10.8.5를 사용하고 있습니다.
java -cp scala-library.jar:example_2.10-0.1.jar:leveldbjni-all-1.7.jar Example
가 잘 작동으로 실행하는 반면 SBT에서 run-main Example
와 예제를 실행하면
[error] (run-main) java.lang.UnsatisfiedLinkError: org.fusesource.leveldbjni.internal.NativeOptions.init()V
을 제공합니다. 이 응용 프로그램은 심지어 스칼라 bootclasspath에에있을 때 성공적으로 실행 :
java -Xbootclasspath/a:scala-library.jar -cp example_2.10-0.1.jar:leveldbjni-all-1.7.jar Example
UnsatisfiedLinkError
만 SBT에서이 왜 어떤 아이디어?
이것은 해결 방법 일 뿐이며 [forking] (http://www.scala-sbt.org/release/docs/Detailed-Topics/Forking.html)을 사용해 보셨습니까? – gourlaysama
@ gourlaysama 예, 실제로 작동하지만 포크로, 당신이 말했듯이, 그것은 단지 해결 방법입니다. 어쨌든 고마워. –
또한 포크 회피 방법은 이전 버전이 아니라 sbt 0.13에서만 작동한다는 것을 덧붙여 야합니다. –