当我尝试
时gcc -c *.c
我收到一个无效的参数错误,并且它没有输入文件。
答案 0 :(得分:1)
如果从没有C源文件的目录运行gcc
,gcc
将收到未展开的*.c
参数,将尝试打开名为*.c
的文件并且失败,将报告此失败,并且在没有进一步论证的情况下,将抱怨丢失的输入文件:
$ gcc -c *.c
gcc: error: *.c: No such file or directory
gcc: fatal error: no input files
compilation terminated.
$
通配符扩展由命令行解释器(即shell)执行。在unix系统上,有许多不同的shell,sh,csh,tcsh,bash,zsh ...所有这些都在运行命令之前扩展了不带引号的通配符。在Windows上,默认shell不会扩展外部命令的通配符,有些程序会自行执行,但大多数程序不会。如果你在Windows上运行bash,有或没有cygwin,你会得到Unix的行为,但如果你运行cmd.exe,你就不会。
MinGW是一组用于制作Windows本机可执行文件的开发工具。它不提供shell,并且尽可能使用本机库和实用程序。这就是您的命令gcc -c *.c
未在您的计算机上进行通配符扩展的原因。安装bash或cygwin以获得更加环保的环境。
答案 1 :(得分:0)
这应该做你想要的。
找到。 -name'* .c'-print | xargs gcc -c