不使用 makefile 一次创建多个目标文件?

Create multple object files at once without using a makefile?

当我尝试时

gcc -c *.c

我收到无效参数错误,它说没有输入文件。

如果您 运行 gcc 来自不存在 C 源文件的目录,gcc 将收到未展开的 *.c 参数,将尝试打开一个文件命名为 *.c 并失败,将报告此失败,并且在没有进一步参数的情况下,将抱怨缺少输入文件:

$ gcc -c *.c
gcc: error: *.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
$

通配符扩展由命令行解释器执行,也就是 shell。在 unix 系统上,有许多不同的 shells、sh、csh、tcsh、bash、zsh...所有这些都在 运行ning 命令之前展开不带引号的通配符。在 Windows 上,默认的 shell 不会为外部命令扩展通配符,有些程序会自己做,但大多数不会。如果您 运行 bash 在 Windows 上使用或不使用 cygwin,您将获得 Unix 行为,但如果您 运行 cmd.exe,则不会。

MinGW 是一组用于制作 Windows 本机可执行文件的开发工具。它不提供 shell 并尽可能支持使用本机库和实用程序。这就是为什么您的命令 gcc -c *.c 没有在您的机器上进行通配符扩展的原因。安装 bash 或 cygwin 以获得更适合 unix 的环境。

这应该可以满足您的需求。

找到。 -name '*.c' -print | xargs gcc -c