希望this会有所帮助,但会遇到不同的错误。
尝试将以下内容编译为hello.cs
using Gtk;
using System;
class Hello
{
static void Main()
{
Application.Init();
Window window = new Window("helloworld");
window.Show();
Application.Run();
}
}
使用以下命令进行编译“gmcs hello.cs -pkg:gtk-sharp-2.0”
取决于命令提示符,我收到cs0006(mono cp)或cs2001(win cp),说无法找到文件 从mono cp它说无法找到元数据文件 来自win cp它说无法找到源文件
以下是一个示例:
c:\Users\Stephen Lloyd\Desktop>gmcs hello.cs -pkg:gtk-sharp-2.0
-r:C:/Program Files \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/pango-sharp.dll \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/atk-sharp.dll \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/gdk-sharp.dll \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/gtk-sharp.dll \(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/glib-sharp.dll
error CS2001: Source file `Files' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/pango-sharp.dll' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/atk-sharp.dll' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/gdk-sharp.dll' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/gtk-sharp.dll' could not be found
error CS2001: Source file `\(x86\)/Mono-2.10.8/lib/mono/gtk-sharp-2.0/glib-sharp.dll' could not be found
Compilation failed: 6 error(s), 0 warnings
在所有情况下,引用的.dll都在该文件夹中。
有什么想法吗?
答案 0 :(得分:1)
-pkg在Windows上被破坏;您需要提供个人-r[eference]:
个人。有关详细信息,请参阅this answer。
答案 1 :(得分:1)
作为手动输入引用的替代方法,我发现将mono安装到没有空格又名为C:\ devtools \ mono的路径,然后将... C:\ devtools \ mono \ bin添加到路径中会更容易。这个命令对我来说很成功。顺便说一句,在Windows上使用unix devtools之前我遇到过类似的问题,这也有效。
答案 2 :(得分:0)
MacOSX上有这个问题。将单声道bin目录添加到路径的解决方案为我解决了这个问题。
具体而言, " /Library/Frameworks/Mono.framework/Versions/Current/bin" 需要走在我的道路上。
我这样做了:
export MONOPATH=/Library/Frameworks/Mono.framework/Versions/Current
export PATH=${PATH}:${MONOPATH}/bin
之后,我能够通过以下方式编译:
gmcs /t:exe /debug+ -pkg:dotnet WinFormsHello.cs
(同样适用于gtk#etc)
答案 3 :(得分:0)
我在Windows 10上遇到了同样的问题。由于Windows支持符号链接,因为Vista,我认为这可能是一个解决方案......它对我有用。
作为管理员,我创建了从根目录到mono:
的目录符号链接cd \
mklink /d mono "\program files x(86)\mono"
然后,再次以管理员身份编辑了“打开Mono命令提示符”快捷方式属性:
Target: C:\Windows\SysWOW64\cmd.exe /k "C:\Mono\\bin\setmonopath.bat"
Start In: C:\Mono
现在当pkg-config
解析mono.exe的驱动路径时,它只“看到”c:\mono
并继续附加路径的其余部分以解析所需的包。
您可以从任何目录设置符号链接。为简单起见,我从root设置它。主要目的是建立一个没有空格或特殊字符的路径。