CreateProcess: nessun file o directory di questo tipo

Ricevo questo errore ogni volta che provo a eseguire GCC al di fuori della sua directory di installazione ( E:\MinGW\bin ).

Quindi, diciamo che sono in E:\code e ho un file chiamato one.c In esecuzione: gcc one.c -o one.exe mi darà questo errore:

 gcc: CreateProcess: No such file or directory 

L’unica soluzione è navigare nella sua directory di installazione, eseguire gcc da lì e specificare tutti gli altri percorsi. La mia variabile ambientale Path contiene E:\MinGW\bin .

Qualche suggerimento per risolvere questo problema? Sto facendo funzionare Windows XP SP3.

In particolare, è stato detto che è necessario riavviare dopo aver impostato le variabili ambientali in windows per migwin.

Ho avuto un problema simile, causato dalla mancata installazione del compilatore C ++. Nel mio caso stavo compilando i file .cpp per un’estensione Python, ma il compilatore viene prima richiamato come c: \ mingw \ bin \ gcc.exe.

Internamente, gcc.exe noterebbe che è stato chiesto di compilare un file .cpp. Cercherebbe di chiamare g ++. Exe e fallire con lo stesso messaggio di errore:

gcc.exe: CreateProcess: nessun file o directory di questo tipo

Secondo Code :: Blocks wiki , è necessario aggiungere C:\MinGW\libexec\gcc\mingw32\MinGW-Version al PATH . Non è necessario riavviare, ma è necessario aprire un altro terminale per ottenere le ultime impostazioni PATH .

Per MinGW-w64, è \libexec\gcc\x86_64-w64-mingw32\4.7.0\

Ho appena avuto questo problema.

Nel mio caso, il problema era dovuto a problemi durante il download dei pacchetti per GCC. Il programma mingw-get pensava di aver completato il download, ma non lo fece.

Volevo aggiornare GCC, quindi ho usato mingw-get per ottenere la versione più recente. Per qualche ragione, mingw-get pensava che il download per un particolare file fosse finito, ma non lo era. Quando è andato ad estrarre il file, immagino abbia emesso un errore (che non mi sono nemmeno preso la briga di guardare – ho appena eseguito “mingw-get update && mingw-get install mingw32-gcc” e l’ho lasciato lì).

Per risolvere, ho rimosso gcc facendo “mingw-get remove mingw32-gcc” e rimosso anche il file del pacchetto (quello che mingw-get non ha scaricato completamente), che era nella cartella della cache mingw (“C: \ MinGW \ var \ cache \ mingw-get \ packages “nel mio sistema), quindi ha eseguito di nuovo il comando install. Scarica e installa le parti mancanti di GCC (non ha scaricato completamente il pacchetto gcc-core).

Questo ha risolto il mio problema.

È interessante notare che mingw-get è stato abbastanza intelligente da continuare il download di gcc-core anche dopo aver eliminato il file del pacchetto nella cartella cache e rimosso anche il pacchetto mingw32-gcc.

Penso che il problema più fondamentale era che, poiché i file gcc-core non erano installati, cc1 non era lì. E gcc usa cc1. Immagino che, quando gcc ha provato ad avviare cc1, abbia usato CreateProcess da qualche parte per passare il percorso di cc1, che non era il percorso di un file esistente. Quindi il messaggio di errore.

Ho avuto esattamente lo stesso problema.

Dopo aver ricontrollato il mio PATH , mi sono reso conto di aver installato sia Mingw (64 bit) che Cygwin (32 bit). Il problema è che sia Mingw che Cygwin hanno g++ .

Distriggersndo il percorso di Cygwin , l’errore è scomparso.

Quindi questo è un messaggio di errore stupido perché non ti dice quale file non può trovare.

Esegui di nuovo il comando con il flag dettagliato gcc -v per vedere cosa sta facendo gcc.

Nel mio caso, è successo che cercava di chiamare cc1plus . Ho controllato, non ce l’ho. Installato il compilatore C ++ del mingw e poi l’ho fatto.

Stava ricevendo lo stesso messaggio di errore quando si tenta di eseguire da Cygwin con collegamenti all’installazione mingw.

Utilizzando la stessa installazione di mingw32-make-3.80.0-3.exe da http://www.mingw.org/wiki/FAQ e l’opzione shell mingw da Start -> Programmi -> su un WinXP SP3 e gcc sta funzionando bene.

Questo problema è dovuto al fatto che si utilizza il suffisso maiuscolo stuff.C anziché il stuff.c minuscolo quando lo si compila con Mingw GCC. Ad esempio, quando ti piace questo:

 gcc -o stuff stuff.C 

allora otterrai il messaggio: gcc: CreateProcess: No such file or directory

Ma se lo fai:

  gcc -o stuff stuff.c 

allora funziona. Solo non so perché.

Ho avuto lo stesso problema e nessuna delle soluzioni suggerite ha funzionato per me. Quindi, anche se questo è un vecchio thread, immagino che potrei anche pubblicare la mia soluzione nel caso in cui qualcun altro trovi questo thread attraverso Google (come ho fatto io).

Per quanto mi riguarda, ho dovuto disinstallare MinGW / eliminare la cartella MinGW e reinstallarla. Dopo la reinstallazione, funziona come un incantesimo.

Ho avuto un problema simile. Inizialmente, l’aggiunta della cartella bin GCC al mio percorso di sistema non risolveva il problema. Ho trovato due soluzioni.

Il primo era eseguire un file batch che ho trovato nella root dell’installazione MinGW, mingwbuilds.bat. Apparentemente (apparentemente) avvia un prompt dei comandi configurato correttamente per eseguire GCC. Il secondo era rimuovere le virgolette doppie dalla cartella del cestino di installazione GCC che avevo aggiunto alla variabile del mio percorso utente. Ho provato questo dopo aver notato che il file batch non utilizzava virgolette attorno al percorso del bin di installazione.

Dettagli extra

Ho trovato il file batch accidentalmente mentre navighi nell’albero delle cartelle di installazione cercando di individuare i vari eseguibili che non si stavano avviando (secondo l’output -v). Ho trovato alcune informazioni sul wiki MinGW, http://www.mingw.org/wiki/Getting_Started , nella sezione Impostazioni di attenzione e ambiente, che indica il motivo per cui il programma di installazione di MinGW non imposta il percorso del sistema o dell’utente per includere l’installazione cartella. Sembrano confermare che il file batch ha l’intenzione di avviare un prompt dei comandi adatto per l’esecuzione di GCC da un prompt di Windows.

Nel “dai a un uomo un pesce, dagli da mangiare per un giorno, insegna a un uomo a pescare, sbarazzati di lui per tutto il weekend” vena,

  g ++ --help 

mostra le opzioni del compilatore. L’opzione g ++ -v aiuta:

  -v Visualizza i programmi richiamati dal compilatore 

Guarda attraverso l’output per i percorsi fasulli. Nel mio caso il comando originale:

  g ++ -v "d: /UW_Work/EasyUnit/examples/1-BasicUnitTesting/main.cpp" 

output generato compreso questo piccolo gioiello:

  -iprefix c: \ olimexods \ yagarto \ arm-none-eabi \ bin \ ../ lib / gcc / arm-none-eabi / 4.5.1 / 

che spiegherebbe il messaggio “no tale file o directory”.

Il segmento “../lib/gcc/arm-none-eabi/4.5.1/” proviene da specifiche integrate:

  g ++ -dumpspecs 

Ho avuto un percorso molto lungo, e c’è un file lì da qualche parte (non gcc.exe) ma un altro file, che gcc.exe sta accedendo dal percorso ..

Quindi quando ho ripulito il percorso, ha funzionato

 C:\MinGW>cd bin C:\MinGW\bin>where gcc.exe C:\MinGW\bin\gcc.exe C:\Perl64\site\bin\gcc.exe 

^^ Quindi gcc da lì in esecuzione eseguirà sicuramente gcc.exe

 C:\MinGW\bin>type file6.c #include void main() { int num1,num2; scanf("%2d %4d",&num1,&num2); printf("a=%db=%d",num1,num2); scanf("%d",&num1); //flushall(); printf("c=%d",num1); } 

Compilandolo ho ricevuto questo errore

 C:\MinGW\bin>gcc file6.c gcc: error: CreateProcess: No such file or directory 

Il mio PERCORSO era enorme

 C:\MinGW\bin>path PATH=C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\P...... 

C: \ MinGW \ bin> percorso | grep -io “ming”

Non c’era il ming lì.

C: \ MinGW \ bin> echo MING | grep -io “ming” MING

(e sì che grep funziona..il percorso non ha avuto il mio)

Cancellando completamente il mio percorso, l’ho portato al lavoro!

 C:\MinGW\bin>set PATH= C:\MinGW\bin>gcc file6.c C:\MinGW\bin> 

Quindi, non è chiaro ancora esattamente ciò che era nel PERCORSO che ha portato allo scontro. Quale directory, quale file.

Aggiornare-

Quanto sopra sembra essere corretto per me, ma per aggiungere, non è nemmeno un caso semplice di qualcosa in precedenza nel percorso di scontro … perché normalmente la directory corrente ha la precedenza. E lo fa qui in quanto gcc –version mostra che sta eseguendo il ming e non uno di quelli in una directory in conflitto. Quindi c’è qualcosa di divertente in questo, se la directory in conflitto si trova nel percorso), uno deve fare. \ Gcc o aggiungere . all’inizio del percorso o aggiungere c:\MinGW\bin prima di qualsiasi directory in conflitto nel percorso. questo è il caso anche quando sei in C:\MinGW\bin e questo è strano. E quando dà un errore, è ancora in esecuzione gcc di Ming ma (per qualche motivo) guarda anche la directory in conflitto, come vedo dal monitor di processo. Potrebbe esserci più di una risposta qui http://wiki.codeblocks.org/index.php?title=Installing_MinGW_with_Vista nel link menzionato nella risposta molto upvoted qui

Questo è Ming32 bit ..

Guardando a Ming 64bit, probabilmente ho lo stesso problema, ma vedo, interessante, che viene fornito con un file bat che (sensibilmente) mette effettivamente la directory bin alla radice del percorso. E sembra che sia un modo standard per eseguire correttamente Ming gcc.

Il codice :: blocca IDE (sensibilmente) mette anche la directory bin all’inizio del percorso. Se si esegue un programma C che mostra le variabili di ambiente, lo si vede.

Ho avuto lo stesso problema ma nessuna delle soluzioni attualmente elencate ha aiutato al primo tentativo.

opzione -v non ha dato alcun indizio aggiuntivo.

Dovuto ricorrere a ProcMon per essere in grado di trovare la radice del problema.

Il dumping dell’attività del file di processo g++ rivelato numerosi tentativi di trovare cc1plus eseguibile cc1plus su percorsi diversi. Tra di loro c’erano percorsi verso la vecchia versione di GCC.

Ma quella vecchia versione risiedeva in una cartella separata e non era affatto referenziata dalla nuova versione che ho provato ad eseguire.

Finalmente il percorso obsoleto è stato trovato nella variabile d’ambiente% PATH% di sistema. Dopo averlo rimosso, la nuova versione ha iniziato a funzionare senza errori.

Aggiungi E:\MinGW\bin alla variabile PATH .

Sembra che ci siano un paio di distro di rilascio per MinGW. Quale hai provato? Per la cronaca, mi sono imbattuto nello stesso identico problema dell’OP e la distro che ho ottenuto proviene da TDM-GCC 4.5.1.

Ho trovato che la distro MinGW qui sembra funzionare molto meglio e imposta le cose correttamente. Quindi, per chiunque si imbatta in questo errore di “creazione di un file-senza-file-o-directory” ritardato e non riesca a far funzionare le cose, disinstallare il MinGW esistente e provare quello che ho collegato.

Ho avuto lo stesso problema (sto eseguendo cygwin)

L’avvio di una shell tramite cygwin.bat non ha aiutato, ma l’avvio di una shell tramite MingWShell lo ha fatto. Non so bene perché, ma penso che abbia qualcosa a che fare con il livello extra che cygwin mette tra lo script in esecuzione e il filesystem sottostante.

Stavo installando pip da dentro un cygwin di virtual env per installare django sentry ..

La soluzione per me è semplicemente:

  1. Quando salvi il programma, diciamo che si chiama hi.cpp e lo metti nella cartella, ad es. Xxl, quindi salva il tuo programma.

  2. Taglia questa cartella e inseriscila nella cartella bin del mingw.

  3. Quando chiami il programma:

     ------ g++ xxl\hi.cpp -------- 

Questo problema potrebbe verificarsi se si dispone di diverse versioni di programmi.

Ad esempio, hai 1 anni di gcc e vuoi compilare un codice sorgente C ++. Se usi mingw-get per installare g++ , gcc e g++ avranno improvvisamente versioni diverse e probabilmente troverai te stesso in questa situazione.

L’ mingw-get update e l’ mingw-get update mingw-get upgrade hanno risolto questo problema per me.

(Riferendosi al problema originale)
La versione di mingw di mingw (vedi postare)
Tutto quello che dovevo fare era impostare il percorso nella stessa shell in cui ho eseguito gcc .
Mi ci è voluta un’ora per ricordare come impostare DOS variables

 A:> set PATH=C:\MinGW\bin\; C:\Program Files\ImageMagick-6.8.0-Q16\; C:\WINDOWS\system32\;C:\WINDOWS\;C:\WINDOWS\System32\Wbem\; C:\WINDOWS\system32\WindowsPowerShell\v1.0\; C:\Program Files\QuickTime\QTSystem\ A:> gcc hi.c 

Ho avuto lo stesso problema e ho provato tutto senza alcun risultato ,, Ciò che ha risolto il problema per me stava cambiando l’ordine dei percorsi della libreria nella variabile PATH. Avevo Cygwin così come alcuni altri compilatori quindi c’era probabilmente una sorta di collisione tra loro. Quello che ho fatto è stato inserire C: \ MinGW \ bin; percorso prima di tutti gli altri percorsi e ha risolto il problema per me!

prova a inserire il percorso nelle variabili di sistema invece di inserire le variabili utente nelle variabili di ambiente.

Stavo ricevendo questo messaggio di errore, perché stavo usando MinGW-w64, ei comandi in \bin avevano tutti un prefisso strano. Ho tentato di chiamare i file eseguibili nelle directory “alias di destinazione” anziché nelle directory \bin , il che ha provocato ancora più problemi. Questo è un no-no secondo le FAQ . La soluzione per me, quindi, era creare collegamenti simbolici a tutti i comandi con prefisso. Ho aperto un prompt dei comandi con mklink gcc.exe x86_64-w64-mingw32-gcc.exe usato qualcosa come mklink gcc.exe x86_64-w64-mingw32-gcc.exe per ogni eseguibile, e ora la mia build funziona.

Sebbene post sia vecchio, ho avuto lo stesso problema con mingw32 vers 4.8.1 il 2015/02/13. La compilazione utilizzando Eclipse CDT non è riuscita con questo messaggio. Anche il tentativo dalla riga di comando con l’opzione -v non è riuscito. Mi mancava anche l’eseguibile cc1plus.

La causa: ho scaricato la riga di comando e l’installazione grafica dal sito mingw32. L’ho usato per fare la mia installazione iniziale di mingw32. Usando la GUI ho selezionato gli strumenti di base, selezionando sia i compilatori c che c ++.

Questo programma di installazione ha fatto un’installazione incompleta del compilatore c ++ a 32 bit. Ho avuto i file g ++ e cpp ma non l’eseguibile cc1plus. Cercando di eseguire un ‘aggiornamento’ non è riuscito perché il programma di installazione presupponeva che avessi installato tutto.

Per correggere ho trovato questi siti: http://mingw-w64.sourceforge.net/ http://sourceforge.net/projects/mingw-w64/ Ho scaricato ed eseguito questa ‘installazione online’. Abbastanza sicuro questo conteneva i file mancanti. Ho modificato la mia variabile PATH e ho indicato la cartella ‘bin’ contenente l’eseguibile g ++. Riavviato. Installato 64 bit Eclipse. Aperto Eclipse e il programma c ++ “Hello World” compilato, eseguito e debugato correttamente.

Nota: il programma di installazione a 64 bit sembra avere impostazioni predefinite UNIX. Perché un programma di installazione non può determinare il sistema operativo ??? Assicurati di cambiarli.

Ho passato un’intera serata a occuparmi di questo. Spero che questo aiuti qualcuno.

Ho avuto lo stesso problema.

Ho già installato un compilatore g ++ su MinGW (il pacchetto mingw32-gcc-g ++ ) ma avevo bisogno di un compilatore C quindi ho eseguito mingw-get-setup.exe dove sono riuscito a installarlo, il pacchetto mingw32-base , quello con il compilatore C.

Ahimè! Ho avuto questo errore quando uso gcc per compilare:

gcc: error: createprocess: nessun file o directory di questo tipo

Quello che ho fatto è stato, utilizzando ancora il MinGW Installation Manager, ho rimosso i pacchetti del compilatore C e C ++, ovvero mingw32-base e mingw32-gcc-g ++ e ALSO cancellato la stessa directory C: \ MinGW. Quindi reran mingw-get-setup.exe, installato mingw32-base e voilà, ha funzionato 🙂