지난 3 일 동안 가상 Ubuntu (12.04)를 사용하여 TechNexion 블리자드 보드 (Unstrom의 알 수없는 버전 실행) 용 Mono 2.11.4를 크로스 컴파일하려고했습니다. Win7 32 비트 머신과 CodeSourcery Sourcery G ++ ARM 툴체인, 거의 성공하지 못함. 웹의 모든 자습서를 따라 왔지만 작동하지 않습니다.ARM 용 모노 컴파일을 수행 할 수 없습니다
CodeSourcery Sourcery G ++ 툴 체인 및 Scratchbox2 (최신 git 소스에서 컴파일 됨)가 설치되어 작동합니다. Scratchbox2는
sb2-init armv7 /home/dev/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc
를 사용하여 설정하는 동안 올바른 디렉토리 (~/코드 소서리/Sourcery_G ++ _ 라이트/팔 - 없음 - 리눅스 - gnueabi/libc의)입니다.
간단한 'Hello world'(cpp)를 컴파일하고 보드에서 컴파일하고 실행할 수 있습니다. 우분투에서 :
file hello
hello: ELF 32-bit LSB executable, ARM, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.16, not stripped
나는 모노 2.11.4의 소스를 다운로드하여 instructions 중 하나를 따랐다. 첫 번째 부분 (기본 컴퓨터에서)은 오류없이 작동합니다. 그러나 두 번째 부분 (ARM 용으로 컴파일)을 실행할 때 ./configure은 예상대로 작동하지만 으로 실패합니다. "../lib/mini[some_file]은 팔 출력"과 호환되지 않습니다. A 이 파일의 파일은 실제로 인텔 80386 실행 파일이라고 말하지만 그 이유는 알 수 없습니다.
다음 단계는 을 실행하고을 삭제하고 동일한 단계를 반복하지만 동일한 결과가 나타납니다.
나는 다음 SB2 내부 전체를 대신 할 ./configure를 및 을 시도하고 처음 일 것 같았다. 그러나 일부 오류는 빌드가 파산 팝업 :
./.libs/libmini.a(libmini_la-mini-arm.o): In function `mono_arch_init':
/home/dev/source/host-mono/mono-2.11.4/mono/mini/mini-arm.c:689: undefined reference to `debugger_agent_single_step_from_context'
/home/dev/source/host-mono/mono-2.11.4/mono/mini/mini-arm.c:689: undefined reference to `debugger_agent_breakpoint_from_context'
/home/dev/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ld: .libs/libmono-2.0.so.1.0.0: hidden symbol `debugger_agent_single_step_from_context' isn't defined
/home/dev/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-ld: final link failed: Nonrepresentable section on output
내가 잘못 무엇에 어떤 아이디어, 또는 내가 놓친 것 자습서에 어떤 조언?
// 앤더스
mono 2.11.4 및 mono 3.0이 아닌 이유는 무엇입니까? 11은 홀수이므로 "불안정"을 의미합니다. – knocte
2.10.9로 시도 할 수는 있지만 컴파일 할 생각은 없습니다. 하지만 나는 시도해 볼 것이다. 3.0은 여전히 베타 버전이므로 지금은 옵션이 아닙니다. – user1143242
mono 3.0이 컴파일되고 이전 버전이 아니라면 오히려 그 대신에 아무 것도 아니고 그렇지 않습니까? ;) btw 어디에서 3.0을 읽었습니까? – knocte