복붙노트

[SCALA] SBT와 기본 시스템 라이브러리를 통합

SCALA

SBT와 기본 시스템 라이브러리를 통합

JOGL에서 사람들은 (예를 들어, 네이티브 라이브러리와 다양한 SBT 작업을 통합 할 수있는 좋은 방법은 무엇이며, LWGL, 또는 JCuda? 특히,

나는 네이티브 라이브러리에 대한 직접 SBT 설정이없는 가정합니다. 그런 일이 존재하는 경우, 위의 작업을 투명하게 네이티브 라이브러리를 처리 할 수 ​​있을까?

해결법

  1. ==============================

    1.java.library.path를 수정하고 System.loadLibrary를 (대부분의 사람들이 이렇게 같은 느낌)을 사용하여, 또는 함께 System.load를 사용 : 나는 과거에 수행 한 연구에서, 네이티브 라이브러리를 얻을 수있는 두 가지 방법이로드됩니다 절대 경로.

    java.library.path를 수정하고 System.loadLibrary를 (대부분의 사람들이 이렇게 같은 느낌)을 사용하여, 또는 함께 System.load를 사용 : 나는 과거에 수행 한 연구에서, 네이티브 라이브러리를 얻을 수있는 두 가지 방법이로드됩니다 절대 경로.

    당신이 언급했듯이, java.library.path 덤비는 것은 SBT와 이클립스를 구성하는 측면에서 성가신 수 있으며, 나는 그것을 실행 항아리에 대해 자동으로 수행 할 수 있다고 생각하지 않습니다.

    그 잎 System.load 그래서. 자신의 네이티브 라이브러리를 작성하는 측면에서, 당신이 할 수있는 것은 :

    (내가 난독 화는 자원을 포함 할 알고 방법을 모르는 있지만) 그 어떤 추가 구성없이 SBT 실행, 이클립스, 그리고 실행 항아리와 함께 작동합니다.

    이제 이미 기록 된 타사 네이티브 라이브러리, 그들 중 일부 jblas 이미이 "지방 항아리"방법을 사용 등에있다. 그들은 당신이 java.library.path를 설정하는 기대가 그것 같이 느낄 때 그 때 System.loadLibrary를 호출하면, 당신은 그 일을하기 위해 마법을 수행해야합니다.

    나는이 시도하지 않은,하지만이 솔루션은 작동 할 수 있습니다 :

    물론 수동으로 사용하기 전에 타사 라이브러리를 초기화해야하기 때문에이 성가신이지만, 설정 자바에 모든 도구를 얻기 위해보다 초기화 포인트 (당신의 주요 기능 및 테스트 초기화)을 모두 포장 실현 가능성이 보인다 .library.path 올바르게. 그리고 그렇게 정말 당신이 포장해야 하나 초기화 포인트가, 당신은 이미 타사 라이브러리 위의 추상화 자신의 계층이있는 경우보다 더 쉽게 할 수있다.

    즉 현실적인 해결책처럼 보인다 경우 혼동하는 경우, 나는 방법의 wrapper SBT 작업 또는 스칼라에 대한 자세한 내용을 추가 할 수 있습니다.

  2. ==============================

    2.OSX에서 경우는 SBT 테스트 중에 /lib/*.jnilib 네이티브 libs와로드 문제가 있습니다.

    OSX에서 경우는 SBT 테스트 중에 /lib/*.jnilib 네이티브 libs와로드 문제가 있습니다.

    [오류]에서 java.lang.UnsatisfiedLinkError 치명적인 실행 오류 java.library.path 없음 jniortools 의한

    대신 System.loadLibrary를 다음 코드 ( "jniortools")를 사용할 수 있습니다.

    new File("lib").listFiles().map(_.getAbsolutePath).filter(_.endsWith("jniortools.jnilib")).foreach(System.load)
    
  3. ==============================

    3.간단한 방법이있다.

    간단한 방법이있다.

    네이티브 라이브러리가 lib_extra 디렉토리에 저장되어 있다고 가정

  4. from https://stackoverflow.com/questions/10761166/integrating-native-system-libraries-with-sbt by cc-by-sa and MIT license