Mono ferramenta mkbundle incapaz de criar binário com queixa de que arquivo de saída está indisponível
-
05-09-2019 - |
Pergunta
De acordo com sugestões de este segmento em correndo C # aplicativos sans .NET eu compilei meu aplicativo usando mono. Eu construí o aplicativo original usando o mais recente Visual C # .NET Express Edition. Ele funciona muito bem em .NET no Windows. Eu, então, abriu Cygwin e navegou para a minha fonte onde eu compilei o projeto novamente, em mono usando o seguinte comando:
$ mcs <myProjectHere>.cs
Isso produz MyProject.exe, que pode ser executado a partir do Cygwin com sucesso, e pode ser executado a partir da linha de comando Janela com sucesso. Comandos utilizados são:
$ mono MyProject.exe
C:\...>mono MyProject.exe
e apenas por diversão, simplesmente:
C:\...>MyProject.exe
Todo o trabalho como esperado. Então eu tentei construir o mono executável compilado em um binário estaticamente ligado usando o comando mkbundle da seguinte forma:
$ mkbundle -o MyProject MyProject.exe --deps
Este é o lugar onde as coisas começam a ir ladeira abaixo. Ela começa bem o suficiente e depois reclama que o arquivo de saída (presumivelmente, MyProject.exe) não pode ser aberto porque ele está ocupado. A saída completa de tudo isso é aqui:
$ 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]
Eu afirmo que o meu gcc toolchain unix está instalado e em bom estado, porque eu tenho sido capaz de compilar com êxito poucos aplicativos C ++ no eclipse usá-lo recentemente (embora eu acho que eu deveria estar aberta para qualquer número de problemas ... ).
Qualquer pessoa já se deparou com nada parecido com isso? Estou perplexo ...
Solução
Parece que ele está tentando saída em MyProject.exe
, que é o mesmo que o arquivo de entrada.
Tente executar
$ mkbundle -o ProgramOutput Program.exe --deps
Este é apenas um palpite, a propósito, já que eu não sei mkbundle
.