【问题标题】:MinGW GCC wildcardMinGW GCC 通配符
【发布时间】:2017-01-14 13:31:08
【问题描述】:

我在windows上使用MinGW GCC编译器如何编译一个目录下的所有C文件。

我用过

gcc  *.c -o  Output

在我输入所需的文件夹后,我得到了这个错误

gcc: error: *.c: Invalid argument 
gcc: fatal error: no input files

编译终止。

使用的GCC版本是4.7.1

【问题讨论】:

  • 要么你没有 .c 文件,要么你没有在 shell 提示符下输入这个。 (例如,您不能将其作为选项放在 code::blocks 中)。如果您仍然遇到问题,请详细说明您如何发送命令以及您使用的 shell。
  • 我使用 windows CMD 并将 mingw bin 文件夹添加到系统 PATH 变量中,我可以使用 gcc --version 命令并检查该文件夹除了 .c 文件之外没有文件的文件夹跨度>
  • 很好 - 使用 mingw-w64 4.9.2 和 windows cmd 对我有用。希望其他人可以重现您的问题。考虑使用mingw-w64
  • 我已经测试过了,它可以在 gcc 6.1.0 上正常工作(我正在使用 mingw-w64)。

标签: windows gcc mingw wildcard


【解决方案1】:

这应该适用于较旧的 mingw-w64 版本:

#ifdef __MINGW64_VERSION_MAJOR
int _dowildcard = -1; /* enable wildcard expansion for mingw-w64 */
#endif

【讨论】:

    【解决方案2】:

    对于像我这样遇到此问题的其他人:

    在我的平板电脑上安装 MinGW-w64 并在我的桌面上运行了几年后,我遇到了这个问题。
    基本上,我有一个 ruby​​ 脚本,它为我做了一些基本的编译工作,它在我的平板电脑上的链接阶段被打破了(在桌面上开发并运行良好)。
    错误:Invalid Argument, no input files (as in the original question)。

    如果您检查一下,您会发现一些地方告诉您问题是由于 Windows 上的 CMD 处理将通配符传递给程序的方式(与 UNIX shell 相比)。
    基本上,Windows 将通配符的解释留给程序。
    某些 MinGW 版本可以处理来自 CMD 的通配符,而其他版本则不能。
    我可以使用 MinGW-W64 的 MinGW-W64-builds 安装程序使用通配符。

    【讨论】:

      猜你喜欢
      • 2019-11-29
      • 1970-01-01
      • 1970-01-01
      • 2020-12-28
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多