根据来自的建议这个线程 https://stackoverflow.com/questions/551554/can-you-compile-c-without-using-the-net-framework在运行没有 .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
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)