gpt4 book ai didi

mono - 无法让 System.Numerics 在 OS X 上使用命令行 Mono (mcs)

转载 作者:行者123 更新时间:2023-12-02 02:02:24 25 4
gpt4 key购买 nike

我们正在尝试在 OS X 的命令行上运行一个简单的 Mono 脚本。大多数脚本对我们来说工作正常,但是一旦我们尝试使用 System.Numerics,我们就会收到“错误 CS0234:类型或命名空间命名空间 System 中不存在名称‘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”来获取其他系统包。但这会产生:

Package dotnet was not found in the pkg-config search path. Perhaps you should add the directory containing `dotnet.pc' to the PKG_CONFIG_PATH environment variable No package 'dotnet' found error CS8027: Error running pkg-config. Check the above output.

好吧,我们没有 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 一起工作的咒语吗?

最佳答案

如果您使用的是 Mono 2.10.x,则必须使用 dmcs 而不是 mcs 进行编译以启用 4.0 配置文件(System.Numerics 是 C# 4.0 + 仅功能)。

如果您使用的是 Mono 2.11.x 或 3.0.x,则默认情况下 mcs 应选择 4.5 配置文件。 mcs -help 应显示 244.5 作为 -sdk 选项的可能值。如果没有,则框架没有正确安装;我有过一次,我认为 /Library/Frameworks/Mono.framework/Versions/Current 指向了错误的目录;第二次安装修复了这个问题。

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

关于mono - 无法让 System.Numerics 在 OS X 上使用命令行 Mono (mcs),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16599091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com