针对专有ARM设备的交叉编译mono

针对专有ARM设备的交叉编译mono,mono,embedded,scratchbox,Mono,Embedded,Scratchbox,目前,我们正在为一些arm elf little endian设备开发软件。我们目前正在用普通的C语言进行这项工作,这是一种痛苦。幸运的是,我们创建的设备公司提供C++支持,不幸的是,同一个公司已经把C++库搞乱了,所以项目在编译的链接阶段失败了,YAY!p> 所以最近我一直在寻找替代品,最有趣的替代品是mono。我可以看出,为arm编译mono主要是在scratchbox中完成的,这似乎是一个不错的选择。但我也可以看到,我需要设置类似于我的设备的rootfs。。。然而,我无法找出我的设备上的r

目前,我们正在为一些arm elf little endian设备开发软件。我们目前正在用普通的C语言进行这项工作,这是一种痛苦。幸运的是,我们创建的设备公司提供C++支持,不幸的是,同一个公司已经把C++库搞乱了,所以项目在编译的链接阶段失败了,YAY!p>
所以最近我一直在寻找替代品,最有趣的替代品是mono。我可以看出,为arm编译mono主要是在scratchbox中完成的,这似乎是一个不错的选择。但我也可以看到,我需要设置类似于我的设备的rootfs。。。然而,我无法找出我的设备上的rootfs是什么,因为我无法以任何方式连接到它。这会使使用scratchbox编译mono变得不可能吗?如果是这样的话,有没有其他方法可以编译mono?

您可以使用常见的配置支持进行交叉编译,类似这样:

CC=arm linux yourabi gcc CFLAGS=“-march=armv7-a-mfloat abi=softfp”-DARM\u FPU\u VFP=1./configure--host=arm linux yourabi--disable mcs build

当然,您需要调整设备ABI和浮点支持。 --需要禁用mcs build,因为您无法在系统上运行交叉编译的mono:您可以在devel box上的单独树中构建类库和C#代码,然后将它们复制到目标


也与IanNorton在评论中所写的相反,Muno运行时用C++编写(C++中只有一个非常小的绑定到LLVM,这不是必需的,不是默认的构建,对你的安装来说绝对没有用)。(核心的一大部分是C++)CPP支持没有被破坏,C++ API是这样的。所以,虽然我们没有问题,编写C++程序,但是我们没有办法使用C++ API。(这是个问题,因为我们有80个C的C)。