首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Win 7 64位gmcs hello.cs -pkg上的Mono开发环境:GTK-Shar-2.0找不到文件

Win 7 64位gmcs hello.cs -pkg上的Mono开发环境:GTK-Shar-2.0找不到文件
EN

Stack Overflow用户
提问于 2012-05-17 04:57:56
回答 3查看 3.3K关注 0票数 3

我下载了Mono并在Win 7 64位上安装了它

我去这个网站是为了遵循http://www.mono-project.com/Mono_Basics的指示

我打开mono命令提示符并编译并运行控制台hello world。

然后,我尝试用以下方法编译窗口化的hello world示例

代码语言:javascript
复制
gmcs hello.cs -pkg:gtk-sharp-2.0 

我明白了

代码语言:javascript
复制
C:\Code\NoControl\Mono>gmcs hello.cs -pkg:gtk-sharp-2.0
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/pango-sharp.dll' could not be found
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/atk-sharp.dll' could not be found
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/gdk-sharp.dll' could not be found
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/gtk-sharp.dll' could not be found
error CS0006: Metadata file `C:/PROGRA\~2/MONO-2\~1.8/lib/mono/gtk-sharp-2.0/glib-sharp.dll' could not be found
Compilation failed: 5 error(s), 0 warnings

我该怎么解决这个问题?

这是类似于这里的问题,cannot compile hello.cs for gtk# using mono command prompt没有得到回答。

  • -pkg在Windows上工作吗?
  • ,我必须下载额外的东西吗?
  • ,简写的路径提到了~1.8/应该说像~10.8是我的mono版本是2.10.8?
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-20 00:54:39

这些都是有助于指出问题根源的答案。然而,到目前为止,最简单的解决方案是将Mono安装到名称中没有空格的文件夹中。安装时,只需选择"C:\SDK\Mono“之类的内容即可。问题解决了,没有什么古怪的工作

票数 9
EN

Stack Overflow用户

发布于 2012-10-02 15:34:04

我发现在Windows7上,Mono已被安装为“Program”的子目录,它的一个工作方法是在C:保存目录链接(例如,MonoLinks)根目录下创建一个文件夹。然后,从命令提示符进入这个目录并创建一个目录连接,给它一个不包含空格的名称。

代码语言:javascript
复制
C:\MonoLinks>mklink /J Mono "C:\Program Files\Mono-2.10.8"

这样做的效果是创建一个名为Mono的可遍历目录(链接),该目录不仅将显示Mono安装的内容,而且可供程序访问,而无需转换为其原始路径名。这可以很容易地在C:的根目录中创建,但是有了一个通用文件夹(MonoLinks),如果需要的话,可以在其中创建额外的链接,而不需要混淆C:的根。

接下来的事情(因为在安装过程中PATH环境变量没有更新)是更新PATH环境变量,以便它指向安装中的bin目录。在“控制面板”中,用户帐户,选择“更改我的环境变量”并编辑路径变量以包含C:\MonoLinks\Mono\bin (即添加分号和路径属性文本末尾的路径)。

票数 6
EN

Stack Overflow用户

发布于 2012-06-13 18:41:24

-pkg在Windows上似乎存在缺陷。在干净的命令提示符下,如果您将Program Files\Mono\bin放置在路径上,gmcs将阻塞语法并提供有关Files\Mono\...的错误,指示与路径名中的空格相关的错误。如果您将PROGRA~1\MONO\bin放置在您的路径上或使用Mono命令提示符,它将阻塞并给出有关PROGRA\~1/MONO/...的错误,指示与tildes相关的错误(等等)。并逃离他们。

请注意,虽然我已经给出了32位示例,但没有理由不适用于64位版本,PROGRA~2Program Files (x86)

我发现的一个解决办法是使用完整的路径,根据pkg-config返回的信息向gmc提供单独的-r[eference]参数。尝试:

代码语言:javascript
复制
gmcs hello.cs -r:C:/PROGRA~2/MONO-2~1.8/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
              -r:C:/PROGRA~2/MONO-2~1.8/lib/mono/gtk-sharp-2.0/gdk-sharp.dll
              ...

或者更好的是:

代码语言:javascript
复制
gmcs hello.cs -r:"C:\Program Files (x86)\Mono-2.10.8\lib\mono\..." -r:"..."

(即全路径)

如果使用的是NAnt,请尝试删除<pkg-references/>并添加:

代码语言:javascript
复制
<include name="C:\Program Files\Mono\lib\mono\gtk-sharp-2.0\gtk-sharp.dll" />
<include name="C:\Program Files\Mono\lib\mono\gtk-sharp-2.0\gdk-sharp.dll" />
...

<references/>下。

请原谅我使用不一致和不完整的路径名称;这个答案是一个指南,而不是复制粘贴解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10630051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档