1

我完全被难住了。我正在尝试使用使用 Buildroot 和 Crosstool-NG 生成的 eglibc 工具链来编译 Mono。我无法在 3.0.3 之后构建任何版本。版本 3.0.3 构建并执行得很好...更高版本在尝试编译 mscorlib 时挂起。下面列出了它挂起的输出。

使用 strace 似乎 mscorlib 的编译已成功完成,但所有剩余的作业都在等待完成而永远不会完成的事情(我的 cpu% 下降到 0,所以什么都没有发生)。

非常感谢任何尝试的建议。这是挂起时的make输出:

---先前的输出被忽略

全部在运行时

make[2]: 进入目录`/home/test/dev/mono-3.0.7/runtime'

如果测试-w /home/test/dev/mono-3.0.7/mcs;然后 :; 否则 chmod -R +w /home/test/dev/mono-3.0.7/mcs; 菲

cd /home/test/dev/mono-3.0.7/mcs && make --no-print-directory -s NO_DIR_CHECK=1 PROFILES='net_2_0 net_3_5'CC='i686-buildroot-linux-gnu-gcc' all-简介

Bootstrap 编译器:Mono C# 编译器版本 2.10.8.1

MCS [build] mscorlib.dll <---- 永远挂在这个输出

谢谢你!

4

2 回答 2

2

感谢knocte的评论,我设法偶然发现了答案。我不知道为什么,但是将我的 eglibc 库更改为 2_13 可以让我的 Mono 编译成功完成。我最初使用的是 2_15。我也试过 2_14 彻底,它也因挂在同一点而失败。上面步骤中提到的步骤似乎死锁了。

总而言之,Mono 3.0.3 和更早的版本使用 eglibc 2_15 buildroot 工具链编译得很好。Mono 版本 3.0.4 及更高版本没有,但使用 eglibc 2_13 buildroot 工具链成功构建。

我不知道问题出在 Mono、eglibc 还是两者兼有。考虑到我浪费了多少时间,我希望这对某个地方的人有所帮助!

于 2013-05-18T19:58:32.567 回答
0

对我来说,这个问题是由防病毒软件 (Avast) 引起的。即使我将单声道文件夹添加到“扫描排除”列表并禁用保护罩,它仍然会继续扫描mono/mini/.libs/mono-sgen.exe。卸载防病毒软件后,构建没有挂起并成功完成。

我并不是建议您卸载防病毒软件。我刚刚提到了对我有用的东西。仅供参考,我在构建完成后重新安装了防病毒软件。

于 2016-06-20T17:50:58.823 回答