Моно инструмент mkbundle не может создать двоичный файл с жалобой на то, что выходной файл недоступен
В соответствии с предложениями из этой темы по запуску приложений на C# без.NET я скомпилировал мое приложение, используя моно. Я создал оригинальное приложение, используя последнюю версию Visual C# .NET Express Edition. Он отлично работает на.NET в Windows. Затем я открыл Cygwin и перешел к своему источнику, где я снова скомпилировал проект под моно, используя следующую команду:
$ mcs <myProjectHere>.cs
Это создает MyProject.exe, который может быть успешно запущен из Cygwin, и может быть успешно запущен из командной строки Windows. Используемые команды:
$ 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 ОС есть: Windows Источники: 1 Авто-зависимости: True встраивание: c:\Documents and Settings\bsweeney\ Мои документы \Visual Studio 2008 \ Проекты \TestConsole\TestConsole\Program.exe встраивание: C:\PROGRA~1\Mono-2.2\lib\mono\2.0\mscorlib.dll Компиляция: как -о темп.о темп.с gcc -mno-cygwin -g -o Программа -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: не работает ru выходной файл Program.exe: устройство или ресурс заняты collect2: ld вернул 1 статус выхода [Потерпеть поражение]
Я утверждаю, что мой unix gcc toolchain установлен и находится в хорошем состоянии, потому что я смог успешно скомпилировать несколько приложений на C++ в Eclipse, используя его недавно (хотя я полагал, что должен быть открыт для любого количества проблем...).
Кто-нибудь когда-нибудь сталкивался с чем-то подобным? Я в тупике...
1 ответ
Кажется, что он пытается вывести в MyProject.exe
, что совпадает с входным файлом.
Попробуйте запустить
$ mkbundle -o ProgramOutput Program.exe --deps
Кстати, это всего лишь предположение, поскольку я не знаю, mkbundle
,