不使用 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
当我尝试时
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