c# - Mono mkbundle 工具无法创建二进制文件,并提示输出文件不可用

标签 c# compiler-construction mono linker mkbundle

根据 this thread 的建议在运行没有 .NET 的 C# 应用程序时,我使用 mono 编译了我的应用程序。我使用最新的 Visual C# .NET Express Edition 构建了原始应用程序。它在 Windows 上的 .NET 上运行良好。然后我打开 Cygwin 并导航到我的源代码,在 Mono 下使用以下命令再次编译该项目:

$ mcs <myProjectHere>.cs

这会生成 MyProject.exe,它可以从 Cygwin 中成功运行,也可以从 Window 命令行成功运行。使用的命令是:

$ mono MyProject.exe
C:\...>mono MyProject.exe

只是为了好玩,简单地说:

C:\...>MyProject.exe

一切都按预期进行。然后,我尝试使用 mkbundle 命令将单声道编译的可执行文件构建为静态链接的二进制文件,如下所示:

$ mkbundle -o MyProject MyProject.exe --deps

这就是事情开始走下坡路的地方。它一开始运行得很好,然后提示输出文件(可能是 MyProject.exe)由于繁忙而无法打开。全部的完整输出在这里:

    $ mkbundle -o Program Program.exe --deps
    OS is: Windows
    Sources: 1 Auto-dependencies: True
       embedding: c:\Documents and Settings\bsweeney\My Documents\Visual Studio 2008
    \Projects\TestConsole\TestConsole\Program.exe
       embedding: C:\PROGRA~1\Mono-2.2\lib\mono\2.0\mscorlib.dll
    Compiling:
    as -o temp.o temp.s
    gcc -mno-cygwin -g -o Program -Wall temp.c `pkg-config --cflags --libs mono|dos2
    unix`  temp.o
    /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/bin/ld: cannot op
    en output file Program.exe: Device or resource busy
    collect2: ld returned 1 exit status
    [Fail]

我声称我的unix gcc工具链已安装并且状况良好,因为我最近已经能够使用它在eclipse中成功编译一些c++应用程序(尽管我认为我应该对任何数量的问题持开放态度...... )。

有人遇到过这样的事情吗?我被难住了...

最佳答案

看起来它正在尝试输出到 MyProject.exe 中,这与输入文件相同。

尝试运行

$ mkbundle -o ProgramOutput Program.exe --deps

顺便说一句,这只是一个猜测,因为我不知道 mkbundle

关于c# - Mono mkbundle 工具无法创建二进制文件,并提示输出文件不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/558707/

相关文章:

c# - 获取 .NET Core JsonSerializer 以序列化私有(private)成员

c# - 为什么关闭在单元测试中创建的窗口会引发 InvalidComObjectException?

python - 没有 node.js 的 CoffeeScript 编译器?

asp.net - 如何在 Linux 服务器上托管的 Mono 中部署 .NET Web 应用程序?

c# - 如何将 RichTextBox 滚动到底部?

c# - 将字符串列表与可用的字典/词库进行比较

C 可以处理子字节指令寻址吗?

flutter - Dart FFI 到底是如何实现的?它们与普通函数调用一样便宜,还是在幕后做繁重的工作?

linux - 为 Redhat Linux 安装 MonoDevelop IDE

asp.net - 尝试安装 MONO/ASP.NET - 但无法确定服务器使用哪个 Linux 发行版