2009-04-20 2 views
5

MIPS 용으로 정적으로 크로스 컴파일하려고합니다. Mono를 컴파일 할 수 있지만 컴파일러에 정적을 지정하더라도 항상 동적으로 그 종속성과 연결됩니다.누구나 uClibc를 사용하여 MIPS 64 용 모노 컴파일을 할 수 있습니까?

필자는 테스트 프로그램을 작성했으며 툴체인과 함께 정적으로 컴파일하고 대상 플랫폼에서 실행할 수 있습니다. 내가 뭔가를 놓치고 있는지 또는 가능하지 않은지 확실하지 않습니다. buildroot을 사용하여 툴체인을 구축했습니다.

편집

상황이 좀 더 명확하게하기 위해, 나는 그것이 종속성을의와 정적으로 모노를 컴파일하고 싶습니다. mono 의존성은 GLib, pkg-config, gettext입니다. GLib은 직접 의존성이고 GLib는 pkg-config와 gettext에 의존한다고 생각합니다.

환경 변수를 게시하고 필요할 경우 명령을 구성 할 수 있습니다.

답변

1

글쎄, 이것을 시도한 지 오래되었지만, 배운 것을보고하고 싶었습니다. 하나는 MIPS 프로세서가 64 비트이고 32 비트가 아니라는 것을 알았습니다. 처음에는 내가 목표로 삼고 있던 임베디드 장치에 대해 말했던 것처럼 말입니다. 둘째,이 작업을 할 때 Mono는 MIPS 64 비트 지원을 아직받지 못했습니다. 약간의 연구 끝에 N-iX의 그룹이 Mono를 포팅하여 이미 완료된 32 비트 포트를 기반으로 MIPS 64 비트 아키텍처를 지원한다는 것을 알았습니다. SiCortex, Inc.이라는 회사에서 64 비트 포트가 완료되었으며 N-iX는 주 Mono 개발 트렁크에 패치를 적용하려고했습니다. 자세한 내용은 forum thread을 확인하십시오. 테스트와 관련하여 도움을 원한다는 내용의 게시물을 게시했지만 답변을 얻지 못했습니다.

Mono를 정적으로 컴파일하는 한, Mono는 라이브러리를 함께 연결하기 위해 libtool을 사용한다는 것을 알게되었습니다. 정적으로 컴파일하기 전에이 도구에 대해 더 자세히 알아야합니다. 모노가 MIPS 64 비트를 아직 지원하지 않았다는 것을 알게되면서 멈췄습니다. 또한 64 비트 포트 패치가 Mono에 적용되었는지 확인해야합니다.

이 정보가 도움이되기를 바랍니다.

1

완전히 정적으로 연결된 모노를 얻으려면 먼저 정적 라이브러리로 모든 종속성 (및 종속성을 재귀 적으로) 빌드해야합니다. 그래야만 진정한 정적 모노를 만들 수 있습니다.

+0

나는 이것이 대답 일까 두려웠다. buildroot에서 나는 mono가 toolchain으로 빌드 된 패키지를 선택했기 때문에 링크를 위해 toolchain의 lib와 bin 폴더에있을 것입니다. 나는 다른 사람들이 그렇게 생각하지 않고 그 과정을 거치고 싶지 않았다. 나는 그것을 시도하고 단계를 되돌려보고 할 것이다. –

0

최근 Stackoverflow Podcast 중 하나에서 Miguel은 iPhone을 모노로 이식했으며 많은 정적을 사용한다고 생각합니다. 64 비트는 아니지만 Mono에게 불쾌한 일을 할 수 있음을 보여줍니다.

+0

그들이 한 일은 정적으로 .NET 애플리케이션을 컴파일하는 것이 었습니다. 내가 찾고있는 것에 가깝지만, 그렇지는 않습니다. Mono 런타임을 정적으로 컴파일하려고합니다. 런타임을 사용할 수 있기 때문에 .NET 응용 프로그램을 정적으로 컴파일 할 필요가 없습니다. –

관련 문제