Mono strumento mkbundle in grado di creare binario con denuncia che file di output non è disponibile
-
05-09-2019 - |
Domanda
Come per suggerimenti da questa discussione su esecuzione C # .NET applicazioni sans ho compilato la mia app utilizzando mono. Ho costruito l'applicazione originale utilizzando la più recente Visual C # .NET Express Edition. Funziona bene su .NET su Windows. Poi ho aperto il Cygwin e navigato per la mia fonte in cui ho compilato nuovamente il progetto, sotto mono utilizzando il seguente comando:
$ mcs <myProjectHere>.cs
Questo produce MyProject.exe, che può essere eseguito all'interno di Cygwin con successo, e può essere eseguito dalla riga di comando Finestra con successo. I comandi utilizzati sono:
$ mono MyProject.exe
C:\...>mono MyProject.exe
e solo per calci, semplicemente:
C:\...>MyProject.exe
Tutti i lavori come previsto. Allora ho provato a costruire la mono compilato eseguibile in un binario linkato staticamente utilizzando il comando mkbundle come segue:
$ mkbundle -o MyProject MyProject.exe --deps
Questo è dove le cose cominciano ad andare in discesa. Si inizia abbastanza bene e poi si lamenta che il file di output (presumibilmente, MyProject.exe) non può essere aperto perché è occupato. L'uscita completa di tutto ciò è qui:
$ 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]
Io affermo che la mia unix gcc toolchain è installato e in buone condizioni perché sono stato in grado di compilare con successo un paio di applicazioni C ++ in eclisse di utilizzarlo di recente (anche se dovrei dovrei essere aperto a qualsiasi numero di problemi ... ).
Chiunque abbia mai imbattersi in qualcosa di simile? Sono perplesso ...
Soluzione
Sembra che stia cercando di output in MyProject.exe
, che è lo stesso del file di input.
Provare a eseguire
$ mkbundle -o ProgramOutput Program.exe --deps
Questa è solo una supposizione, tra l'altro, dal momento che non so mkbundle
.