Mono strumento mkbundle in grado di creare binario con denuncia che file di output non è disponibile

StackOverflow https://stackoverflow.com/questions/558707

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 ...

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top