C# Cygwin Mono Mkbundle在Windows 7上无法编译文件。

3
我正在尝试按照以下帖子使用cygwin构建嵌入mono的c#应用程序。
我正在遵循这里的指南: 如何将简单的.NET控制台项目转换为可移植exe,使用Mono和mkbundle? 我收到的错误是:
"gcc: the -mno-cygwin flag has been removed; use a mingw-targeted cross-compiler."
我不确定如何解决这个问题 - 有人可以提供建议吗?
我使用的是: Windows 7 x64, Mono 2.4.3, cygwin 7.1 beta (支持Windows 7)。
谢谢,
Frank
2个回答

7

你尝试过更新到Mono 2.6.1吗?我成功地使用以下步骤在Win7 x64上使用mkbundle使Windows Form应用程序工作:

  1. 下载Mono 2.6.1
  2. 下载cgywin 1.7.1
  3. 为cgywin安装gcc-mingw、mingw-zlib和pkg-config包
  4. 启动cgywin并编辑.bashrc,例如C:/progra~2/notepad++/notepad++ $HOME/.bashrc
  5. 添加$HOME/.bashrc export PATH=$PATH:/cygdrive/c/progra~2/Mono-2.6.1/bin
  6. 添加$HOME/.bashrc export PKG_CONFIG_PATH=/cygdrive/c/progra~2/Mono-2.6.1/lib/pkgconfig
  7. 退出并重新启动cgywin
  8. 更改目录到.Net应用程序
  9. 使用xbuild编译解决方案
  10. 更改目录到bin文件夹,例如bin\Debug
  11. mkbundle -o Setup SetupForm.exe --deps -z
  12. 将本地mono dlls复制到bin\Debug文件夹中(mono.dll、libglib-2.0-0.dll、libgthread-2.0-0.dll、zlib.dll)

事实证明我有两个问题。第一个是我下载了错误的gcc cygwin包(我最初下载了所有的gcc包 - 这次我将它们全部删除,只安装了mingw版本)。第二个问题是我的Windows“PATH”变量设置不正确:我指定了“progra〜1”,而应该是“progra〜2” - 忘记了在Windows x64上有两个'program files'目录...非常感谢! - frank

0

我使用了一个运行XP的VPC,cygwin 1.5,一切都很正常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接