Согласно предложениям от этой темы по запуску приложений на C # без .NET Я скомпилировал мое приложение, используя моно. Я создал оригинальное приложение, используя последнюю версию Visual C # .NET Express Edition. Он отлично работает на .NET в Windows. Затем я открыл Cygwin и перешел к исходному коду, где я снова скомпилировал проект под моно, используя следующую команду:
$ 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 toolchain установлен и находится в хорошем состоянии, потому что я недавно смог успешно скомпилировать несколько приложений c ++ в Eclipse, используя его (хотя я полагал, что должен быть открыт для любого количества проблем ... ).
Кто-нибудь сталкивался с чем-нибудь подобным? Я в тупике ...