我们试图在OS上的命令行上运行一个简单的Mono脚本。大多数脚本对我们都很好,但是一旦我们尝试使用System.Numerics,我们就会得到"error 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“来获得其他系统包。但这就产生了:
在pkg-config搜索路径中找不到Package。也许您应该将包含`dotnet.pc‘的目录添加到PKG_CONFIG_PATH环境变量No package 'dotnet’directory CS8027: error运行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",就会得到"error CS0006:元数据文件`System.Numerics‘无法找到“。
我现在很困惑..。你知道我错过了什么咒语让System.Numerics和mcs一起工作吗?
发布于 2013-05-19 03:54:07
如果使用Mono2.10.x,则必须使用dmcs而不是mcs进行编译才能启用4.0配置文件(System.Numerics仅是C# 4.0+功能)。
如果您使用的是Mono2.11.x或3.0.x,那么mcs在默认情况下应该选择4.5配置文件。mcs -help应该显示2、4和4.5作为-sdk选项的可能值。如果没有,那么框架就没有正确安装;我曾经安装过一次,其中我认为/Library/Frameworks/Mono.framework/Versions/Current指向了错误的目录;安装了第二次修复。
操作pkg-config应该是不必要的。
https://stackoverflow.com/questions/16599091
复制相似问题