2014-01-21 3 views
1

나는 mono-aot = full을 사용하여 내가 리눅스에서 쓴 작은 프로그램을 컴파일하고 .so 파일을 생성했다. 나는 이것들을 읽고 그것들이 실제로는 라이브러리이고 실행 파일이 아니라는 것을 알았고 나는 c 프로그램에서이 라이브러리들에 어떻게 링크 할 수 있는지 궁금해서 c 프로그램에서 c라고 썼던 방법을 사용할 수 있을까?내 C 프로그램에서 모노 AOT가 생성 한 SO 파일에서 메소드를 어떻게 사용할 수 있습니까?

미리 감사드립니다.

답변

1

--aot=full 스위치 제품은 사전 컴파일 된 바이트 코드가있는 .so 파일입니다. 플랫폼에 따라 다르지만 기본 지침을 실행하지만 스레드 관리를 수행하려면 CLR (Mono Runime)이 필요합니다. & 작업 관리 및 기타 .NET 플랫폼 작업.

당신이 그것을 필요 네이티브 (C#을) 당신이 이러한 자원을 찾고있는 당신의 비 관리 (C/C++) 프로그램에서 방법을 호출하는 경우

  • Native interop rules for mono이 링크는 네이티브를 호출하는 방법을 보여줍니다 (C를/C++) 메서드를 C# 프로그램에서 가져올 수 있지만 작업에 필요한 모든 형식 호환성도 있습니다.
  • Embedding Mono이 링크는 C/C++ 코드 내에서 모노 런타임을 시작하는 방법과 그 이후에 관리되는 코드를 호출하는 방법을 보여줍니다.