Avery Hodge
Avery Hodge

Reputation: 1

Windows 'make' Command for Compiling Github Project Code Using GNU C++ Compiler and gnuwin32: Strange Error

I am trying to compile some code which I have slightly edited from a specific Github project ( https://github.com/CTurt/3DSController/tree/master/PC ) on my Windows device using Mingw32 g++ (the GNU C++ Compiler) and gnuwin32.

I'm quite new to these programs, but I believe I have managed to install them correctly, as the command 'make' definitely is recognized when it is typed into the command prompt. However, there is a possibility that the following error arises from an improper Path specification for one of these programs.

When I run this command in the directory with the 'Makefile' file, I run into this error:

C:\Users\Avery\Downloads\3DSController-master2\3DSController-master\PC>make
process_begin: CreateProcess(NULL, uname, ...) failed.
process_begin: CreateProcess(NULL, uname, ...) failed.
process_begin: CreateProcess(NULL, uname, ...) failed.

In the directory, an empty folder named 'build' is created, but there is no other sign of the process being completed, so I assume it failed.

I ran 'make' again, this time including the tag to show all debug information. I have put the result below in case it is helpful. Any tips or recommendations would be greatly appreciated!

 C:\Users\Avery\Downloads\3DSController-master\3DSController-master\PC>make -d
    GNU Make 3.81
    Copyright (C) 2006  Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.
    There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
    PARTICULAR PURPOSE.

This program built for i386-pc-mingw32
Reading makefiles...
Reading makefile `makefile'...
CreateProcess(NULL,uname,...)
process_begin: CreateProcess(NULL, uname, ...) failed.
CreateProcess(NULL,uname,...)
process_begin: CreateProcess(NULL, uname, ...) failed.
CreateProcess(NULL,uname,...)
process_begin: CreateProcess(NULL, uname, ...) failed.
Updating makefiles....
 Considering target file `makefile'.
  Looking for an implicit rule for `makefile'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.o'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.c'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.cc'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.cpp'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.p'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.f'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.r'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.s'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.mod'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.sh'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile,v'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `RCS/makefile,v'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `RCS/makefile'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `s.makefile'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `SCCS/s.makefile'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.o'.
  Looking for a rule with intermediate file `makefile.o'.
   Avoiding implicit rule recursion.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.c'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.cc'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.cpp'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.p'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.f'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.r'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.s'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.mod'.
   Trying pattern rule with stem `makefile.o'.
   Trying implicit prerequisite `makefile.o,v'.
   Trying pattern rule with stem `makefile.o'.
   Trying implicit prerequisite `RCS/makefile.o,v'.
   Trying pattern rule with stem `makefile.o'.
   Trying implicit prerequisite `RCS/makefile.o'.
   Trying pattern rule with stem `makefile.o'.
   Trying implicit prerequisite `s.makefile.o'.
   Trying pattern rule with stem `makefile.o'.
   Trying implicit prerequisite `SCCS/s.makefile.o'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.c'.
   Looking for a rule with intermediate file `makefile.c'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.y'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.l'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.w'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.w'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `makefile.c,v'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `RCS/makefile.c,v'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `RCS/makefile.c'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `s.makefile.c'.
    Trying pattern rule with stem `makefile.c'.
    Trying implicit prerequisite `SCCS/s.makefile.c'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.y'.
    Looking for a rule with intermediate file `makefile.y'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `makefile.y,v'.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `RCS/makefile.y,v'.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `RCS/makefile.y'.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `s.makefile.y'.
     Trying pattern rule with stem `makefile.y'.
     Trying implicit prerequisite `SCCS/s.makefile.y'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.l'.
    Looking for a rule with intermediate file `makefile.l'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `makefile.l,v'.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `RCS/makefile.l,v'.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `RCS/makefile.l'.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `s.makefile.l'.
     Trying pattern rule with stem `makefile.l'.
     Trying implicit prerequisite `SCCS/s.makefile.l'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.w'.
    Looking for a rule with intermediate file `makefile.w'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `makefile.w'.
     Trying implicit prerequisite `makefile.w,v'.
     Trying pattern rule with stem `makefile.w'.
     Trying implicit prerequisite `RCS/makefile.w,v'.
     Trying pattern rule with stem `makefile.w'.
     Trying implicit prerequisite `RCS/makefile.w'.
     Trying pattern rule with stem `makefile.w'.
     Trying implicit prerequisite `s.makefile.w'.
     Trying pattern rule with stem `makefile.w'.
     Trying implicit prerequisite `SCCS/s.makefile.w'.
    Trying pattern rule with stem `makefile'.
    Rejecting impossible implicit prerequisite `makefile.w'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.cc'.
   Looking for a rule with intermediate file `makefile.cc'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `makefile.cc'.
    Trying implicit prerequisite `makefile.cc,v'.
    Trying pattern rule with stem `makefile.cc'.
    Trying implicit prerequisite `RCS/makefile.cc,v'.
    Trying pattern rule with stem `makefile.cc'.
    Trying implicit prerequisite `RCS/makefile.cc'.
    Trying pattern rule with stem `makefile.cc'.
    Trying implicit prerequisite `s.makefile.cc'.
    Trying pattern rule with stem `makefile.cc'.
    Trying implicit prerequisite `SCCS/s.makefile.cc'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.cpp'.
   Looking for a rule with intermediate file `makefile.cpp'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `makefile.cpp'.
    Trying implicit prerequisite `makefile.cpp,v'.
    Trying pattern rule with stem `makefile.cpp'.
    Trying implicit prerequisite `RCS/makefile.cpp,v'.
    Trying pattern rule with stem `makefile.cpp'.
    Trying implicit prerequisite `RCS/makefile.cpp'.
    Trying pattern rule with stem `makefile.cpp'.
    Trying implicit prerequisite `s.makefile.cpp'.
    Trying pattern rule with stem `makefile.cpp'.
    Trying implicit prerequisite `SCCS/s.makefile.cpp'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.p'.
   Looking for a rule with intermediate file `makefile.p'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.web'.
    Trying pattern rule with stem `makefile.p'.
    Trying implicit prerequisite `makefile.p,v'.
    Trying pattern rule with stem `makefile.p'.
    Trying implicit prerequisite `RCS/makefile.p,v'.
    Trying pattern rule with stem `makefile.p'.
    Trying implicit prerequisite `RCS/makefile.p'.
    Trying pattern rule with stem `makefile.p'.
    Trying implicit prerequisite `s.makefile.p'.
    Trying pattern rule with stem `makefile.p'.
    Trying implicit prerequisite `SCCS/s.makefile.p'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.web'.
    Looking for a rule with intermediate file `makefile.web'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `makefile.web'.
     Trying implicit prerequisite `makefile.web,v'.
     Trying pattern rule with stem `makefile.web'.
     Trying implicit prerequisite `RCS/makefile.web,v'.
     Trying pattern rule with stem `makefile.web'.
     Trying implicit prerequisite `RCS/makefile.web'.
     Trying pattern rule with stem `makefile.web'.
     Trying implicit prerequisite `s.makefile.web'.
     Trying pattern rule with stem `makefile.web'.
     Trying implicit prerequisite `SCCS/s.makefile.web'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.f'.
   Looking for a rule with intermediate file `makefile.f'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.r'.
    Trying pattern rule with stem `makefile.f'.
    Trying implicit prerequisite `makefile.f,v'.
    Trying pattern rule with stem `makefile.f'.
    Trying implicit prerequisite `RCS/makefile.f,v'.
    Trying pattern rule with stem `makefile.f'.
    Trying implicit prerequisite `RCS/makefile.f'.
    Trying pattern rule with stem `makefile.f'.
    Trying implicit prerequisite `s.makefile.f'.
    Trying pattern rule with stem `makefile.f'.
    Trying implicit prerequisite `SCCS/s.makefile.f'.
    Trying pattern rule with stem `makefile'.
    Trying implicit prerequisite `makefile.r'.
    Looking for a rule with intermediate file `makefile.r'.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Avoiding implicit rule recursion.
     Trying pattern rule with stem `makefile'.
     Rejecting impossible implicit prerequisite `makefile.l'.
     Trying pattern rule with stem `makefile.r'.
     Trying implicit prerequisite `makefile.r,v'.
     Trying pattern rule with stem `makefile.r'.
     Trying implicit prerequisite `RCS/makefile.r,v'.
     Trying pattern rule with stem `makefile.r'.
     Trying implicit prerequisite `RCS/makefile.r'.
     Trying pattern rule with stem `makefile.r'.
     Trying implicit prerequisite `s.makefile.r'.
     Trying pattern rule with stem `makefile.r'.
     Trying implicit prerequisite `SCCS/s.makefile.r'.
   Trying pattern rule with stem `makefile'.
   Rejecting impossible implicit prerequisite `makefile.r'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.s'.
   Looking for a rule with intermediate file `makefile.s'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `makefile.s'.
    Trying implicit prerequisite `makefile.s,v'.
    Trying pattern rule with stem `makefile.s'.
    Trying implicit prerequisite `RCS/makefile.s,v'.
    Trying pattern rule with stem `makefile.s'.
    Trying implicit prerequisite `RCS/makefile.s'.
    Trying pattern rule with stem `makefile.s'.
    Trying implicit prerequisite `s.makefile.s'.
    Trying pattern rule with stem `makefile.s'.
    Trying implicit prerequisite `SCCS/s.makefile.s'.
   Trying pattern rule with stem `makefile'.
   Trying implicit prerequisite `makefile.mod'.
   Looking for a rule with intermediate file `makefile.mod'.
    Avoiding implicit rule recursion.
    Avoiding implicit rule recursion.
    Trying pattern rule with stem `makefile.mod'.
    Trying implicit prerequisite `makefile.mod,v'.
    Trying pattern rule with stem `makefile.mod'.
    Trying implicit prerequisite `RCS/makefile.mod,v'.
    Trying pattern rule with stem `makefile.mod'.
    Trying implicit prerequisite `RCS/makefile.mod'.
    Trying pattern rule with stem `makefile.mod'.
    Trying implicit prerequisite `s.makefile.mod'.
    Trying pattern rule with stem `makefile.mod'.
    Trying implicit prerequisite `SCCS/s.makefile.mod'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.c'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.cc'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.cpp'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.p'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.f'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.r'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.s'.
  Trying pattern rule with stem `makefile'.
  Rejecting impossible implicit prerequisite `makefile.mod'.
  Trying pattern rule with stem `makefile'.
  Trying implicit prerequisite `makefile.sh'.
  Looking for a rule with intermediate file `makefile.sh'.
   Avoiding implicit rule recursion.
   Trying pattern rule with stem `makefile.sh'.
   Trying implicit prerequisite `makefile.sh,v'.
   Trying pattern rule with stem `makefile.sh'.
   Trying implicit prerequisite `RCS/makefile.sh,v'.
   Trying pattern rule with stem `makefile.sh'.
   Trying implicit prerequisite `RCS/makefile.sh'.
   Trying pattern rule with stem `makefile.sh'.
   Trying implicit prerequisite `s.makefile.sh'.
   Trying pattern rule with stem `makefile.sh'.
   Trying implicit prerequisite `SCCS/s.makefile.sh'.
  No implicit rule found for `makefile'.
  Finished prerequisites of target file `makefile'.
 No need to remake target `makefile'.
Updating goal targets....
Considering target file `build'.
 Finished prerequisites of target file `build'.
No need to remake target `build'.
make: `build' is up to date.

Upvotes: 0

Views: 284

Answers (3)

DaveC
DaveC

Reputation: 167

Depending on your makefile and build infrastructure, you may need something sophisticated like Cygwin or Msys. But for many simple applications you don’t even need that. All you need in addition to ‘make’ is ‘coreutils’ which you can get here. It provides uname and other things, so you can run ‘make’ in a plain windows CMD terminal. You may also benefit from small individual tools like awk, sed, etc... Pick and choose from GnuWin32 and ezwinports.

Upvotes: 0

Avery Hodge
Avery Hodge

Reputation: 1

It turns out that trying to run MingW32 in the Windows command line is not such a good idea. If anyone has this issue of a missing program 'uname', it's because you need to run the function in a MingW 'shell', called 'msys.bat'. Please refer to this website for more details: http://www.mingw.org/wiki/getting_started

Upvotes: 0

Andreas
Andreas

Reputation: 5301

Your environment is missing the program uname which is used in the makefile to determine the name of the TARGET executable. uname would be part of the environment had you installed it through Cygwin.

Your options:

  • Install uname, e.g. by installing a Cygwin envirnoment
  • Replace uses of uname in makefile, e.g. with hardcoded TARGET=3DSController.exe

Upvotes: 0

Related Questions