2012-07-02 5 views
1

저는 스칼라 컴파일러 플러그인을 개발 중입니다. 컴파일러 플러그인은 "refcheck"단계 후에 실행됩니다. AST (Abstract Syntax Tree) 을 분석하고 일부 출력을 생성합니다. 이 플러그인에서, 기본 라이브러리 "scalaz3.dll"을 사용하여로드 중입니다. System.loadLibrary네이티브 라이브러리를 스칼라 컴파일러에로드하는 중

Eclipse 스칼라 IDE에서 컴파일러 플러그인을 사용할 계획입니다. ScalaIde 환경 설정에서 -XPlugin 매개 변수를 설정했습니다. 이클립스에서 스칼라 소스 파일을 컴파일하면 , 플러그인은 refchecks 단계 이후 호출되고 (원하는 출력 생성) 그러나

, 나는 소스 파일을 변경하고 컴파일 할 때, 나는 점점 오전 잘 작동 다음 오류.

The SBT builder crashed while compiling your project. 
Native Library scalaz3.dll already loaded in another classloader. 

ScalaIDE가 다른 클래스 로더를 생성하고 동일한 프로세스에서 플러그인 클래스를로드하려고합니다.

나는 컴파일러 플러그인 테스트 케이스에서 같은 문제에 직면했다. 그러나 build.sbtfork in Test := true을 사용하여 수정했습니다. 그러나 나는 이클립스 스칼라 IDE에서 그것을 고칠 방법에 관해서는 단서가 없다. (스칼라 IDE 일식 관련되지 않지만)

여기서 몇 관련 포스트 같습니다

답변

1

IDE는 이렇게 거기에서 프로세스 SBT 사용 포크와 동등하지 않습니다. 예를 들어 object의 생성자 안에로드하여 dll을 한 번만로드 할 수 없습니까?

기술은 here입니다.

관련 문제