eang
eang

Reputation: 1645

Yet Another MinGW "gcc: error: CreateProcess: No such file or directory"

I have installed MinGW C compiler in Windows 8 (64 bit) through the GUI installer. But when I try to compile a C program, gcc says: gcc: CreateProcess: No such file or directory

It is a common bug, and I have tried all the solutions I found, without success.

In particular, (following CreateProcess: No such file or directory) I have tried to:

  1. [EDITED] Add C:\MinGw\libexec\gcc\mingw32\4.7.2 to my system PATH
  2. Uninstall and re-install gcc through mingw-get CLI:

    mingw-get remove mingw32-gcc
    mingw-get install mingw32-gcc

Other suggestions?

EDIT: verbose gcc output:

> gcc -v helloWorld.c
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.7.2/lto-
wrapper.exe
Target: mingw32
Configured with: ../gcc-4.7.2/configure --enable-languages=c,c++,ada,fortran,obj
c,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgo
mp --disable-win32-registry --enable-libstdcxx-debug --disable-build-poststage1-
with-cxx --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version 4.7.2 (GCC)
COLLECT_GCC_OPTIONS='-v' '-mtune=i386' '-march=i386'
cc1plus -quiet -v -iprefix c:\mingw\bin\../lib/gcc/mingw32/4.7.2/
OPTIONS.C -quiet -dumpbase OPTIONS.C -mtune=i386 -march=i386 -auxbase OPTIONS -
version -o C:\Users\elvis\AppData\Local\Temp\cc4fWSvg.s
gcc: error: CreateProcess: No such file or directory

Upvotes: 15

Views: 44463

Answers (9)

user10217630
user10217630

Reputation:

In my case,

  • I added \MinGW\bin in both sys and user variables.
  • Also added \MinGW\msys\2.0\usr\bin in both sys and user variables.

I restarted my computer after doing this. It worked successfully. I got the msys make (unix portable) plus my compilation is working successfully.

Upvotes: 0

Michael Hou
Michael Hou

Reputation: 11

I have the same problem.

I have a startgcc.bat in my folder.
It's OK for me just after remove double quotation marks in my PATH assignment. my bat script:

@title gcc-mingw
@rem @cd /d %~dp0

@rem below line will fail and got error: gcc.exe: error: createprocess: no such file or directory
@rem @set path="C:\mingw64\bin";%path%

@rem below lines works ok without double quotation marks
@set path=C:\mingw64\bin;%path%
@set path=C:\mingw64\opt\bin\;%path%
@cmd

Upvotes: 1

christianbueno.1
christianbueno.1

Reputation: 592

I installed MinGW of the ofcial website.
I select "Basic Setup"( I only wanted get c compiler), and I marked all package, after this installation I added the path, in my case.

C:\MinGW\bin.

I created a c file in

C:\Users\christian\Documents\C projects\

with the name untitled1.c

Wen I tried to use the command

gcc untitled.c

the command promt showed me that message.

gcc: CreateProcess: No such file or directory


How did I solve this problem?
I removed all package,

-Open "MinGW Installation Manager"
-Select "Basic Setup".
-Mark for removal all packages.
-Select "Installation" tap.
-Click in Apply changes.
-After you can install those again.


Operating system

  • Edition: Windows 10 Pro
  • Version: 1607
  • Os build: 14393.187

Upvotes: 1

Marc.2377
Marc.2377

Reputation: 8684

In my case, getting rid of the [=n] parameter when specifying -flto solved the problem.

Specifically, instead of using

-flto=6

in CFLAGS, CXXFLAGS and LDFLAGS, I'm now using simply

-flto


Looks like this is a MinGW-w64 bug, thought at this point I'm not sure whether it might be caused by my using of the -j6 parameter when invoking make.

For future reference, my entire command line is as follows:

mingw32-make -f makefile.gcc CFLAGS="-std=c11 -pipe -O3 -flto" CXXFLAGS="-std=c++14 -pipe -O3 -flto" LDFLAGS="-pipe -O3 -flto -static-libgcc -static-libstdc++ -s -Wl,--allow-multiple-definition" BUILD=release RUNTIME_LIBS=static DEBUG_FLAG=0 USE_AUI=0 USE_HTML=0 USE_MEDIA=0 USE_OPENGL=0 USE_PROPGRID=0 USE_QA=0 USE_RIBBON=0 USE_RICHTEXT=0 USE_STC=0 USE_WEBVIEW=0 USE_XRC=0 CFG="-stl-static_runtime-O3-flto" -j6

This is for building wxWidgets' "Minimal Sample". About -Wl,--allow-multiple-definition : It's intended to circumvent yet another toolchain bug. More info here and here.

Upvotes: 0

Arun
Arun

Reputation: 173

I had the same error. I have 64 bit win 7 OS. First I installed 32 bit MinGW, gcc was installed successfully but showing this error. Tried installing 64 bit MinGW but failed to install. Searched a lot, tried many things but nothing worked.

Finally installed "tdm64-gcc-5.1.0-2" from this link >> https://sourceforge.net/projects/tdm-gcc/?source=typ_redirect

It installed & worked in single attempt without any error. Nothing special tried.

And the basic important point, after installation need to add "bin" directory on env path ('C:\TDM-GCC-64\bin' in my case). Then check gcc installation from this command on console >> "gcc --version" , this will show the gcc version installed.

Upvotes: 1

Casey
Casey

Reputation: 1773

In my case, multiple toolchains had placed different gcc installs into PATH.

(This is turning into a switch!)

Upvotes: 0

Dan
Dan

Reputation: 18694

In my case, I had uninstalled a few items in MinGW to save space on my SSD. Installing mingw32-gcc dev class fixed this problem for me.

Upvotes: 1

Honghe.Wu
Honghe.Wu

Reputation: 6799

In my case, the installer mingw-get-setup.exe failed to download some files, so the gcc complication tool chain is broken, when rerun mingw-get-setup.exe and get the lost files, it is OK.

Upvotes: 0

Michael Burr
Michael Burr

Reputation: 340168

You shouldn't add C:\MinGw\libexec\gcc\mingw32\4.7.2 to the path.

Add: c:\MinGW\bin

You may need to reboot to ensure that the path is made available to all processes properly.

Another suggestion is to use a different MinGW distribution. It's been a long time since I used an 'official' MinGW distribution because the installation steps were so byzantine and fragile. I've heard they've made large advances to the installer, but from what I hear it still seems to be rather complicated and fragile.

TDM's installer just works, but I think the TDM release isn't quite to 4.7.2.

The nuwen distribution's installation is just unpacking an archive where you want the thing (I love that!) and making sure the path points to the location of gcc.exe. Nuwen also packages the boost libraries, which is nice.


I case it helps, here's what I get from gcc -v hello.c (c:\mingw.4.7.2\bin is in the path`):

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw.4.7.2/bin/../libexec/gcc/i686-pc-mingw32/4.7.2/lto-wrapper.exe
Target: i686-pc-mingw32
Configured with: ../src/configure --prefix=/c/temp/gcc/dest --with-gmp=/c/temp/gcc/gmp --with-mpfr=/c/temp/gcc/mpfr --with-mpc=/c/temp/gcc/mpc --enable-languages=c,c++ --with-arch=i686 --with-tune=generic --disable-libstdcxx-pch --disable-nls --disable-shared --disable-sjlj-exceptions --disable-win32-registry --enable-checking=release --enable-lto
Thread model: win32
gcc version 4.7.2 (GCC) 
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
 c:/mingw.4.7.2/bin/../libexec/gcc/i686-pc-mingw32/4.7.2/cc1.exe -quiet -v -iprefix c:\mingw.4.7.2\bin\../lib/gcc/i686-pc-mingw32/4.7.2/ hello.c -quiet -dumpbase hello.c -mtune=generic -march=i686 -auxbase hello -version -o C:\Users\mikeb\AppData\Local\Temp\cct1oltc.s
GNU C (GCC) version 4.7.2 (i686-pc-mingw32)
    compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.1.1-p2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "c:\mingw.4.7.2\bin\../lib/gcc/i686-pc-mingw32/4.7.2/../../../../i686-pc-mingw32/include"
ignoring duplicate directory "c:/mingw.4.7.2/lib/gcc/../../lib/gcc/i686-pc-mingw32/4.7.2/include"
ignoring nonexistent directory "c:/temp/gcc/dest/include"
ignoring nonexistent directory "/c/temp/gcc/dest/include"
ignoring duplicate directory "c:/mingw.4.7.2/lib/gcc/../../lib/gcc/i686-pc-mingw32/4.7.2/include-fixed"
ignoring nonexistent directory "c:/mingw.4.7.2/lib/gcc/../../lib/gcc/i686-pc-mingw32/4.7.2/../../../../i686-pc-mingw32/include"
ignoring nonexistent directory "/mingw/include"
#include "..." search starts here:
#include <...> search starts here:
 c:\mingw.4.7.2\bin\../lib/gcc/i686-pc-mingw32/4.7.2/include
 c:\mingw.4.7.2\bin\../lib/gcc/i686-pc-mingw32/4.7.2/../../../../include
 c:\mingw.4.7.2\bin\../lib/gcc/i686-pc-mingw32/4.7.2/include-fixed
End of search list.
GNU C (GCC) version 4.7.2 (i686-pc-mingw32)
    compiled by GNU C version 4.7.2, GMP version 5.0.5, MPFR version 3.1.1-p2, MPC version 1.0.1
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 8461a53e6fc78ff58191bda61fe9586d
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
 as -v -o C:\Users\mikeb\AppData\Local\Temp\ccqRcYAj.o C:\Users\mikeb\AppData\Local\Temp\cct1oltc.s
GNU assembler version 2.22 (i686-pc-mingw32) using BFD version (GNU Binutils) 2.22
COMPILER_PATH=c:/mingw.4.7.2/bin/../libexec/gcc/i686-pc-mingw32/4.7.2/;c:/mingw.4.7.2/bin/../libexec/gcc/
LIBRARY_PATH=c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/;c:/mingw.4.7.2/bin/../lib/gcc/;c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/../../../
COLLECT_GCC_OPTIONS='-v' '-mtune=generic' '-march=i686'
 c:/mingw.4.7.2/bin/../libexec/gcc/i686-pc-mingw32/4.7.2/collect2.exe -Bdynamic c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/../../../crt2.o c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/crtbegin.o -Lc:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2 -Lc:/mingw.4.7.2/bin/../lib/gcc -Lc:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/../../.. C:\Users\mikeb\AppData\Local\Temp\ccqRcYAj.o -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt -ladvapi32 -lshell32 -luser32 -lkernel32 -lmingw32 -lgcc -lmoldname -lmingwex -lmsvcrt c:/mingw.4.7.2/bin/../lib/gcc/i686-pc-mingw32/4.7.2/crtend.o

Upvotes: 12

Related Questions