mkbundle生成非功能性控制台exe

时间:2011-09-21 23:35:53

标签: windows mono mkbundle

我可以从我的MonoDevelop C#项目中成功构建一个捆绑的exe,但是当我运行bundle时,它什么也没做;执行立即和默默地终止。我做错了什么?

我在64位Windows 7上使用Mono 2.10.5,而cygwin通常在these instructions之后使用these modifications。我遵循的确切步骤是:

  1. 在MonoDevelop中创建新的C#控制台项目(仅包含Console.WriteLine ("Hello World!");
  2. 将目标更改为发布
  3. 构建所有
  4. 在cygwin中:mkbundle -c -o host.c -oo bundle.o --deps BundleTest.exe
  5. 修改host.c,在#undef _WIN32
  6. 之后#endif之后添加#include <windows.h>
  7. 在cygwin中:gcc -mno-cygwin -o test.exe -Wall host.c 'pkg-config --cflags --libs mono-2|dos2unix' bundle.o
  8. 在命令提示符下:test.exe
  9. 在命令提示符下:BundleTest.exe
  10. 在第7步中,文字“Hello World!”按预期在命令提示符下打印。在步骤8中,命令提示符中不打印任何内容;输入rem并按回车即可获得完全相同的响应。

    编辑:其他人编辑了这个问题以转换步骤7和8,这实质上改变了观察到的行为的描述。我不知道为什么他们觉得这样做是合理的,因为他们不是那些进行观察的人,但是从我考虑这个问题的时间开始,我不想只是改变方式。他们是。所以,请注意,此编辑之前的最后一段可能不再准确反映我原来的观察结果。

1 个答案:

答案 0 :(得分:3)

要构建控制台应用程序,您应该从/lib/pkgconfig/mono-2.pc中删除-mwindows标志