没有人能在没有草稿箱或qemu的情况下成功地为Linux下的ARM交叉编译mono?
(也许使用distcc或一些交叉编译器工具链)
在过去的三天里,我一直试图在我的Win7 32位机器和CodeSourcery Sourcery G ++ ARM工具链上使用虚拟Ubuntu(12.04)交叉编译Mono 2.11.4 for TechNexion Blizzard板(运行未知版本的Angstrom) ,但很少/没有成功.我已经按照网络上的每个教程,但它不起作用.
CodeSourcery Sourcery G ++工具链和Scratchbox2(从最新的git源代码编译)已安装并正常工作.Scratchbox2使用它进行设置
sb2-init armv7 /home/dev/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-gcc
Run Code Online (Sandbox Code Playgroud)
而在正确的目录中(〜/ CodeSourcery/Sourcery_G ++ _ Lite/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
Run Code Online (Sandbox Code Playgroud)
我下载了Mono 2.11.4的源代码并按照其中一条说明操作.第一部分(在本机上)运行良好,没有错误.但是,当我运行第二部分(为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: …Run Code Online (Sandbox Code Playgroud)