在過去的三天中,我一直試圖使用我的虛擬Ubuntu(12.04)爲TechNexion Blizzard開發板(運行未知版本的Angstrom)交叉編譯Mono 2.11.4 Win7 32位機器和CodeSourcery Sourcery G ++ ARM工具鏈,但幾乎沒有成功。 我已經按照網絡上的每個教程,但它不工作。不能交叉編譯Mono for ARM
CodeSourcery Sourcery G ++工具鏈和Scratchbox2(從最新的git源碼編譯)已安裝並正在運行。 Scratchbox2設置它使用
sb2-init armv7 /home/dev/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc
,而在正確的目錄(〜/ CodeSourcery的/ Sourcery_G ++ _精簡版/ ARM-NONE-Linux的gnueabi/libc中)。
我可以編譯一個簡單的'Hello world'(cpp),編譯並在板上運行它。在Ubuntu中:
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]是與ARM兼容輸出」。一個文件這些文件說,他們確實是英特爾公司的80386個可執行文件,但我不知道爲什麼。
所以下一步是運行一個make clean並重復這些步驟,但它仍然產生相同的結果。
我又試圖的./configure和使整個事情裏面SB2,而不是它似乎在第一次工作。但隨後一些錯誤彈出構建打破:
./.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
任何想法,我做錯了,或任何提示教程我可能錯過了?
//安德斯
爲什麼單2.11.4和不是單聲道3.0嗎? 11是一個奇數,所以它意味着「不穩定」 – knocte
當然,我可以嘗試使用2.10.9,但我認爲它不會編譯。但是我會努力的。 3.0仍處於測試階段,因此現在不是一種選擇。 – user1143242
如果單聲道3.0編譯和舊版本不,而不是沒有,沒有? ;)順便說一句你在哪裏閱讀3.0被標記爲測試版? – knocte