CreateProcess: Keine solche Datei oder Verzeichnis

Lesezeit: 6 Minuten

Benutzeravatar von Insomaniacal
Schlaflos

Ich erhalte diesen Fehler, wenn ich versuche, GCC außerhalb seines Installationsverzeichnisses auszuführen (E:\MinGW\bin).

Sagen wir also, ich bin dabei E:\code und haben eine Datei namens one.c. Betrieb:
gcc one.c -o one.exe wird mir diesen Fehler geben:

gcc: CreateProcess: No such file or directory

Die einzige Problemumgehung besteht darin, zu seinem Installationsverzeichnis zu navigieren, gcc von dort aus auszuführen und alle anderen Pfade anzugeben. Meine Umgebungsvariable Path enthält E:\MinGW\bin.

Irgendwelche Vorschläge zur Behebung dieses Problems? Ich verwende Windows XP SP3.

  • Haben Sie es dem Pfad hinzugefügt, NACHDEM Sie diesen Fehler mit der Windows-Umgebungsvariablen-GUI erhalten haben? Wenn Sie dies getan haben und versuchen, gcc in derselben Befehlsshell auszuführen, die Sie ursprünglich verwendet haben, wird es nicht funktionieren. Diese Shell hat eine eigene Kopie von PATH, die nicht geändert wurde, als Sie die GUI verwendet haben. Sie können dies sehen, indem Sie echo %PATH% in Ihre Befehlsshell eingeben. Der schnellste Weg, dies zu beheben, wäre, sich abzumelden und erneut anzumelden.

    – George

    3. Oktober 2010 um 4:01 Uhr


  • Ah, ich dachte mir, dass es ausreichen würde, nur eine neue Instanz von CMD.exe zu erzeugen, um die neue Variable “PATH” zu verwenden. Es funktioniert jedoch gut, jetzt, wo ich versucht habe, mich abzumelden und einzuloggen, scheint es gut zu funktionieren. Vielen Dank!

    – Schlaflos

    3. Oktober 2010 um 11:49 Uhr


  • Es kann behoben werden, wenn Sie Ihre Umgebungsvariable temp dir in ein Verzeichnis ändern, dessen Name keine Leerzeichen enthält

    – Jessie Lesben

    4. Januar 2021 um 12:50 Uhr

Ich hatte ein ähnliches Problem, das dadurch verursacht wurde, dass der C++-Compiler nicht installiert wurde. In meinem Fall habe ich .cpp-Dateien für eine Python-Erweiterung kompiliert, aber der Compiler wird zuerst als c:\mingw\bin\gcc.exe aufgerufen.

Intern würde gcc.exe bemerken, dass es aufgefordert wurde, eine .cpp-Datei zu kompilieren. Es würde versuchen, g++.exe aufzurufen und mit derselben Fehlermeldung fehlschlagen:

gcc.exe: CreateProcess: keine solche Datei oder Verzeichnis

  • Die Antwort von Luis Bruno hat mein Problem behoben. Stellen Sie sicher, dass Sie den richtigen Compiler installiert haben. Ich versuche, .cpp-Dateien mit gcc.exe zu kompilieren, während g++ eigentlich erforderlich ist. mingw-get install g++ hat den Fehler gelöscht.

    – Neil Fan

    3. August 2011 um 2:58 Uhr

Benutzeravatar von Herberth Amaral
Herbert Amaral

Entsprechend Code::Blocks-Wikimüssen Sie hinzufügen C:\MinGW\libexec\gcc\mingw32\MinGW-Version zu deinem PATH. Es ist kein Neustart erforderlich, aber Sie müssen ein anderes Terminal öffnen, um das Neueste zu erhalten PATH die Einstellungen.

Für MinGW-w64 ist das <mingw install directory>\libexec\gcc\x86_64-w64-mingw32\4.7.0\

  • Nö… hat mir kein bisschen geholfen.

    – David S

    25. Januar 2012 um 5:27 Uhr

  • Es war auch mein Problem. Ich bin auf 64bit gcc (mingw64-Projekt). Das Hinzufügen von \libexec\gcc\x86_64-w64-mingw32\4.7.0\ hat das Problem behoben.

    – David A.

    19. März 2013 um 10:04 Uhr


  • In meinem Nur-Befehlszeilen-Fall wurde das Problem behoben, indem umgekehrt die PATH. ProcMon war sehr hilfreich bei der Diagnose.

    – Wadzim

    3. August 2016 um 13:42 Uhr

Benutzeravatar von Pedro Henrique A. Oliveira
Pedro Henrique A. Oliveira

Ich hatte gerade dieses Problem.

In meinem Fall lag das Problem an Problemen beim Herunterladen der Pakete für GCC. Das Programm mingw-get dachte, es hätte den Download beendet, aber das tat es nicht.

Ich wollte GCC aktualisieren, also habe ich mingw-get verwendet, um die neuere Version zu erhalten. Aus irgendeinem Grund dachte mingw-get, dass der Download für eine bestimmte Datei abgeschlossen sei, aber das war es nicht. Als es ging, um die Datei zu extrahieren, gab es wohl einen Fehler aus (den ich mir nicht einmal die Mühe machte, nachzusehen – ich habe einfach “mingw-get update && mingw-get install mingw32-gcc” ausgeführt und es dort gelassen).

Um das Problem zu lösen, entfernte ich gcc, indem ich „mingw-get remove mingw32-gcc“ ausführte, und entfernte auch die Paketdatei (diejenige, die mingw-get nicht vollständig heruntergeladen hat), die sich im mingw-Cache-Ordner befand („C:\MinGW\ var\cache\mingw-get\packages” in meinem System) und dann den Installationsbefehl erneut ausgeführt. Es hat die fehlenden Teile von GCC heruntergeladen und installiert (es hatte das Paket gcc-core nicht vollständig heruntergeladen).

Das hat mein Problem gelöst.

Interessanterweise war mingw-get schlau genug, den Download von gcc-core fortzusetzen, selbst nachdem ich die Paketdatei im Cache-Ordner gelöscht und auch das Paket mingw32-gcc entfernt hatte.

Ich denke, das grundlegendere Problem war, dass cc1 nicht vorhanden war, da gcc-core-Dateien nicht installiert waren. Und gcc verwendet cc1. Ich vermute, dass, als gcc versuchte, cc1 zu starten, CreateProcess irgendwo verwendet wurde, um den Pfad von cc1 zu übergeben, der nicht der Pfad einer vorhandenen Datei war. Daher die Fehlermeldung.

  • Meine Festplatte war während der Installation voll und ich denke, das hat das Problem für mich verursacht, auch wenn mingw immer noch ohne Warnung installiert wurde.

    – Addierer

    15. Dezember 2012 um 20:32 Uhr

Das ist also eine dumme Fehlermeldung, weil sie es Ihnen nicht sagt was Datei kann es nicht finden.

Führen Sie den Befehl erneut mit dem Verbose-Flag aus gcc -v um zu sehen, was gcc vorhat.

In meinem Fall ist es passiert, dass es versucht hat, anzurufen cc1plus. Ich habe nachgesehen, das habe ich nicht. Installierte den C++-Compiler von mingw und dann tat ich es.

Benutzeravatar von znatz
znatz

Ich hatte genau das gleiche Problem.

Nach einer erneuten Überprüfung meiner PATHbemerkte ich, dass ich beide installiert hatte Mingw (64bit) und Cygwin (32-Bit). Das Problem ist, dass beides Mingw und Cygwin haben g++.

Durch Deaktivieren des Pfades von Cygwinder Fehler ist verschwunden.

In der Ader “Gib einem Mann einen Fisch, ernähre ihn für einen Tag; bringe einem Mann das Fischen bei, werde ihn für das ganze Wochenende los”

g++ --help

zeigt Compiler-Optionen. Die Option g++ -v hilft:

  -v                       Display the programs invoked by the compiler

Durchsuchen Sie die Ausgabe nach falschen Pfaden. In meinem Fall der ursprüngliche Befehl:

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

generierte Ausgabe einschließlich dieses kleinen Juwels:

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

was die Meldung “keine solche Datei oder kein solches Verzeichnis” erklären würde.

Das Segment „../lib/gcc/arm-none-eabi/4.5.1/“ stammt aus integrierten Spezifikationen:

g++ -dumpspecs

Vadzims Benutzeravatar
Wadzim

Ich hatte das gleiche Problem, aber keine der derzeit aufgeführten Lösungen hat beim ersten Versuch geholfen.

-v Option gab keine zusätzlichen Hinweise.

Zugreifen musste ProcMon um die Wurzel des Problems finden zu können.

Schluss machen g++ Prozessdateiaktivität ergab zahlreiche Suchversuche cc1plus auf verschiedenen Pfaden ausführbar. Darunter waren Pfade zu alten GCC-Versionen.

Aber diese alte Version befand sich in einem separaten Ordner und wurde von der neuen Version, die ich auszuführen versuchte, überhaupt nicht referenziert.

Endlich wurde der veraltete Pfad in der Umgebungsvariable %PATH% des Systems gefunden. Nach dem Entfernen begann die neue Version fehlerfrei zu arbeiten.

  • Nachdem ich dieses Problem jahrelang verfolgt hatte, hatte ich ein ähnliches Problem in Bezug auf cc1/cc1plus. GCC hat aus irgendeinem Grund in allen Pfaden im PATH nach cc1.exe gesucht. Nachdem ich nirgendwo etwas gefunden hatte, gab gcc einen Fehler mit CreateProcess: No such file or directory. Passenden cc1.exe-Pfad zu PATH hinzugefügt und Build war erfolgreich.

    – Casey Kuball

    13. Juli 2021 um 20:33 Uhr

  • Gute Idee, ProcMon zu verwenden, da der Fehler nicht so ausführlich ist und es anscheinend viele mögliche Ursachen für diese spezifische (kryptische) Fehlermeldung gibt. In meinem Fall fand ich heraus, dass g++ suchte as (der Monteur), der fehlte. Die Installation hat mein Problem endlich gelöst.

    – wovano

    30. August 2021 um 9:25 Uhr

1412350cookie-checkCreateProcess: Keine solche Datei oder Verzeichnis

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy