我们正在尝试在 OS X 的命令行上运行一个简单的 Mono 脚本。大多数脚本对我们来说都可以正常工作,但是一旦我们尝试使用 System.Numerics,我们就会收到“错误 CS0234:类型或命名空间名称`Numerics ' 在命名空间系统中不存在。”
这并不奇怪,应该可以通过 mcs 的适当命令行选项来修复,加上正确设置 PKG_CONFIG_PATH ......但这就是我们难住的地方。首先,这是脚本,因此您可以在家中进行操作:
using System;
using System.Numerics;
public static class MainProgram {
public static void Main(string[] args) {
Console.WriteLine("Hello world!");
}
}
所以接下来我们尝试了“mcs -r:System.Numerics Test.cs”。这会产生“错误 CS0006:找不到元数据文件‘System.Numerics’”。
“man mcs”建议我们可以通过在命令行中添加“-pkg:dotnet”来获取其他系统包。但这会产生:
在 pkg-config 搜索路径中找不到包 dotnet。也许您应该将包含 `dotnet.pc' 的目录添加到 PKG_CONFIG_PATH 环境变量 No package 'dotnet' found error CS8027: Error running pkg-config. 检查上面的输出。
好吧,我们没有 PKG_CONFIG_PATH,所以我们尝试定义一个:
export PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig/
这修复了 CS8027;但我们仍然得到我们开始使用的 CS0234。如果我将 -pkg 和 -r 结合起来,例如“mcs -pkg:dotnet -r:System.Numerics Test.cs”,我会得到“错误 CS0006:找不到元数据文件‘System.Numerics’”。
在这一点上我很难过......知道我缺少什么咒语来使 System.Numerics 与 mcs 一起工作吗?