4

目前在工作中,我们正在为一些 arm-elf little endian 设备开发软件。我们目前正在使用纯 C 语言执行此操作,这很痛苦。对我们来说幸运的是,创建设备的公司提供了 c++ 支持,不幸的是同一家公司搞砸了 c++ 库,所以项目在编译的链接器阶段失败了,耶!

所以最近我一直在寻找替代品,最有趣的替代品是单声道。我可以看到为 arm 编译 mono 主要是在暂存箱中完成的,这似乎是一个不错的选择。但我也可以看到我需要设置类似于我的设备的 rootfs……但是,我无法找出我设备上的 rootfs 是什么,因为我无法以任何方式连接到它。这是否会导致无法使用 Scratchbox 编译单声道?如果是这样,还有其他方法可以编译单声道吗?

4

1 回答 1

2

您可以使用通常的配置支持进行交叉编译,如下所示:

CC=arm-linux-yourabi-gcc CFLAGS="-march=armv7-a -mfloat-abi=softfp" -DARM_FPU_VFP=1 ./configure --host=arm-linux-yourabi --disable-mcs-build

当然,您需要针对您的设备 ABI 和浮点支持进行调整。--disable-mcs-build 是必需的,因为您无法在系统上运行交叉编译的单声道:您可以在开发盒上的单独树中构建类库和 C# 代码,然后将它们复制到目标。

此外,与 IanNorton 在评论中所写的相反,单声道运行时是用 C 编写的(在 C++ 中只有一个非常小的与 llvm 的绑定,这不是必需的,在默认构建中不是,而且绝对对您的设置没有用处)。

于 2012-07-05T07:15:35.547 回答