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

时间:2016-08-10 10:56:42

标签: gcc object-files

当我尝试

gcc -c *.c

我收到一个无效的参数错误,并且它没有输入文件。

2 个答案:

答案 0 :(得分:1)

如果从没有C源文件的目录运行gccgcc将收到未展开的*.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