【问题标题】:MinGW32-make path variable issueMinGW32-make 路径变量问题
【发布时间】:2020-06-11 23:34:45
【问题描述】:

我正在尝试在 Win10 上构建一个 C 项目,并且我正在使用 MinGW32-make。在构建之前应该创建构建目录,这是构建中断的地方,输出如下:

mkdir build\f2803x
process_begin: CreateProcess(NULL, mkdir build\f2803x, ...) failed.
make (e=2): The system cannot find the file specified.
Makefile:64: recipe for target 'build\f2803x' failed
mingw32-make: *** [build\f2803x] Error 2

我尝试从命令行运行 mkdir 命令并且它运行成功,但是当我尝试运行 mingw32-make 时它失败了。我一直在网上搜索,类似问题的一个答案指出,Mingw32-make 的 PATH 和 windows 的 PATH 可能不一样,所以我在 makefile 中添加了 echo 路径,并将输出与@987654322 进行了比较@来自cmd。看来他们是不一样的。 Mingw32-make 有 /mingw64/bin:/usr/bin:/c/Users/user123/bin 在任何 Windows 环境变量中都没有说明。我还搜索了注册表作为最后的手段,但是这也不在注册表中。这些额外的路径从哪里来,甚至是路径的问题?

【问题讨论】:

  • 你需要运行cmd.exe /c mkdir build\f2803xMkdircmd.exe 中的内置命令,不是可以从CreateProcess() 运行的程序。

标签: c windows cmd mingw32


【解决方案1】:

mkdir 不是程序,它是由cmd.exe 解释的内置命令。 你想要:

cmd.exe /c mkdir build\f2803x

【讨论】:

    【解决方案2】:

    我一直在寻找类似的问题。对我来说,错误是由于缺少命令(我没有可用的date 命令)。检查您的路径并确保您的 make 可以找到 mkdir 命令。另外,请确保您正在执行 *nix 样式的 mkdir,而不是 dos/windows mkdir。

    【讨论】:

    • 不需要 *nix 风格的 mkdir。
    • 好的,我现在明白了。 CreateProcess(NULL, command, ...) 是因为该程序不存在。在cmd.exe 的情况下,没有 mkdir 命令,因为它是内置的。感谢您的澄清。
    猜你喜欢
    • 2014-04-01
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    相关资源
    最近更新 更多