在OS X上不能得到System.Numerics使用命令行单(MCS)工作(Can't g

2019-09-03 21:14发布

我们正在试图运行在OS X上的命令行脚本大多做工精细为我们简单单的脚本,但只要我们试图用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'无法找到”。

“男人MCS”,这表明我们可以通过添加得到其他系统包“-pkg:dotnet的”命令行。 但是,这产生:

包装DOTNET没有在pkg配置搜索路径中找到。 也许你应该补充含有`dotnet.pc”到PKG_CONFIG_PATH环境变量不包‘DOTNET’目录中发现错误CS8027:错误运行pkg配置。 检查上面的输出。

好吧,那我们没有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工作任何想法?

Answer 1:

如果您使用单声道2.10.x,你将不得不与编译dmcs ,而不是mcs启用4.0配置文件(System.Numerics只是一个C#4.0 +功能)。

如果您使用单声道2.11.x或3.0.x的,然后mcs在默认情况下应选择4.5轮廓。 mcs -help应显示24 ,和4.5作为-sdk选项可能的值。 如果没有,那么框架无法正常安装; 我有,有一次,在那里我觉得/Library/Frameworks/Mono.framework/Versions/Current指向错误的目录; 安装固定的第二时间。

操纵pkg-config应该是不必要的。



文章来源: Can't get System.Numerics to work with command-line Mono (mcs) on OS X