【问题标题】:Windows 'make' Command for Compiling Github Project Code Using GNU C++ Compiler and gnuwin32: Strange Error使用 GNU C++ 编译器和 gnuwin32 编译 Github 项目代码的 Windows 'make' 命令:奇怪的错误
【发布时间】:2021-03-10 00:05:07
【问题描述】:

我正在尝试使用 Mingw32 g++(GNU C++ 编译器)和 gnuwin32 在我的 Windows 设备上从特定的 Github 项目 (https://github.com/CTurt/3DSController/tree/master/PC) 中编译一些代码。

我对这些程序很陌生,但我相信我已经成功地安装了它们,因为在命令提示符中键入命令“make”时肯定会被识别。但是,以下错误可能是由于这些程序之一的路径规范不正确而引起的。

当我在带有“Makefile”文件的目录中运行这个命令时,我遇到了这个错误:

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.

在目录中,创建了一个名为“build”的空文件夹,但没有其他迹象表明该过程已完成,因此我认为它失败了。

我再次运行“make”,这次包括显示所有调试信息的标记。我将结果放在下面以防万一。任何提示或建议将不胜感激!

 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.

【问题讨论】:

    标签: github makefile command-line mingw32 gnuwin32


    【解决方案1】:

    您的环境缺少程序uname,该程序在makefile 中用于确定TARGET 可执行文件的名称。 uname 将成为您通过 Cygwin 安装的环境的一部分。

    您的选择:

    • 安装uname,例如通过安装 Cygwin 环境
    • 在 makefile 中替换 uname 的使用,例如硬编码TARGET=3DSController.exe

    【讨论】:

      【解决方案2】:

      事实证明,尝试在 Windows 命令行中运行 MingW32 并不是一个好主意。如果有人遇到缺少程序“uname”的问题,那是因为您需要在名为“msys.bat”的 MingW 'shell' 中运行该函数。更多详情请参考本网站:http://www.mingw.org/wiki/getting_started

      【讨论】:

        【解决方案3】:

        根据您的 makefile 和构建基础架构,您可能需要像 Cygwin 或 Msys 这样复杂的东西。 但是对于许多简单的应用程序,您甚至不需要它。除了“make”之外,你需要的只是“coreutils”,你可以得到here。它提供 uname 和其他东西,因此您可以在普通的 Windows CMD 终端中运行“make”。您还可以从小型独立工具(如 awk、sed 等)中受益……从 GnuWin32 和 ezwinports 中进行选择。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-01-23
          • 2023-04-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多