2011-09-21 30 views
3

我可以成功地從我的MonoDevelop C#項目構建一個捆綁的exe文件,但是當我運行該捆綁包時,它什麼也不做;執行立即終止並靜靜地執行。我究竟做錯了什麼?mkbundle生成非功能性控制檯exe

我在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. 編輯主機。 c,在#endif後加#undef _WIN32#include <windows.h>
  6. 在cygwin中:gcc -mno-cygwin -o test.exe -Wall host.c 'pkg-config --cflags --libs mono-2|dos2unix' bundle.o
  7. 在命令提示符:test.exe
  8. 在命令提示符: 「Hello World」 的BundleTest.exe

在步驟7,文本按預期方式在命令提示符下打印。在第8步中,命令提示符中沒有任何內容被打印出來;通過鍵入rem和按回車鍵可以得到完全相同的響應。

編輯:別人編輯這個問題切換步驟7和8,這實質上改變了觀察行爲的描述。我不知道爲什麼他們覺得這樣做是合理的,因爲他們並不是做觀察的人,但是從我考慮這個問題的時候就已經遠離了我不想只是轉回來的方式他們是。所以,請注意,編輯之前的最後一段可能並不能準確反映我原來的觀察結果。

回答

3

對於構建控制檯應用程序,您應該從/lib/pkgconfig/mono-2.pc中刪除-mwindows標誌