1

我正在尝试为运行 Debian Sid 的 Cavium OCTEON (mips64) 编译单声道(来自 git)。

如果我尝试完全在 OCTEON 上编译(没有任何现有的单声道安装),它会到达 mcs 目录,然后遇到麻烦。这些问题与没有功能性 gmcs 有关。make get-monolite-latest 的建议路径不起作用(错误的核心版本,仍然没有 gmcs 等)。

为了解决这个问题,我尝试了为 ARM 交叉编译mono的过程。当然,我手头有快速 MIP 硬件,所以我不使用 Scratchbox。

拆分构建过程没有错误。在 OCTEON 上安装后,我可以运行已经编译的 C# 程序(通过 x86_64 系统上的 gmcs)。但是,我无法在 OCTEON 上从源代码编译。因此,IL 运行时似乎可以工作,但编译器却不行。

例如,从http://www.mono-project.com/Mono_Basics编译简单的 hello world给出以下内容:

root@OCTEON:~# gmcs helloWorld.cs 
error CS0518: The predefined type `System.Object' is not defined or imported
error CS0518: The predefined type `System.ValueType' is not defined or imported
error CS0518: The predefined type `System.Attribute' is not defined or imported
error CS0518: The predefined type `System.Int32' is not defined or imported
error CS0518: The predefined type `System.UInt32' is not defined or imported
error CS0518: The predefined type `System.Int64' is not defined or imported
error CS0518: The predefined type `System.UInt64' is not defined or imported
error CS0518: The predefined type `System.Single' is not defined or imported
error CS0518: The predefined type `System.Double' is not defined or imported
error CS0518: The predefined type `System.Char' is not defined or imported
error CS0518: The predefined type `System.Int16' is not defined or imported
error CS0518: The predefined type `System.Decimal' is not defined or imported
error CS0518: The predefined type `System.Boolean' is not defined or imported
error CS0518: The predefined type `System.SByte' is not defined or imported
error CS0518: The predefined type `System.Byte' is not defined or imported
error CS0518: The predefined type `System.UInt16' is not defined or imported
error CS0518: The predefined type `System.String' is not defined or imported
error CS0518: The predefined type `System.Enum' is not defined or imported
error CS0518: The predefined type `System.Delegate' is not defined or imported
error CS0518: The predefined type `System.MulticastDelegate' is not defined or imported
error CS0518: The predefined type `System.Void' is not defined or imported
error CS0518: The predefined type `System.Array' is not defined or imported
error CS0518: The predefined type `System.Type' is not defined or imported
error CS0518: The predefined type `System.Collections.IEnumerator' is not defined or imported
error CS0518: The predefined type `System.Collections.IEnumerable' is not defined or imported
error CS0518: The predefined type `System.IDisposable' is not defined or imported
error CS0518: The predefined type `System.IntPtr' is not defined or imported
error CS0518: The predefined type `System.UIntPtr' is not defined or imported
error CS0518: The predefined type `System.RuntimeFieldHandle' is not defined or imported
error CS0518: The predefined type `System.RuntimeTypeHandle' is not defined or imported
error CS0518: The predefined type `System.Exception' is not defined or imported
Compilation failed: 31 error(s), 0 warnings

我觉得我很接近,但错过了一步。就好像它没有找到 mscorelib.dll。然而,该文件似乎确实存在于前缀路径下:

root@OCTEON# find . | grep -i mscor
./2.0/mscorlib.dll
./2.0/mscorlib.dll.mdb
./2.0/mscorlib.dll.so
./4.5/mscorlib.dll
./4.5/mscorlib.dll.mdb
./4.5/mscorlib.dll.so
./4.0/mscorlib.dll
./4.0/mscorlib.dll.mdb

在我开始深入研究 mcs 代码以了解它的流程和出了什么问题之前,我希望这里的某个人能够阐明这个问题并为我指明正确的方向。我错过了什么吗?有什么明显的解决办法吗?

4

0 回答 0