编译多个C文件,以便resulant可执行文件将源文件的基本名称作为其名称

时间:2012-05-23 09:51:08

标签: linux gcc

我在目录中有以下C文件...

hello.c, myprog.c, out.c

我想在单个命令中编译这些文件,以便可执行文件的命名如下:

hello, myprog, out

我试过这个命令

ls *.c | awk '{print $1}' 

这列出了所有没有扩展名的c文件。

是否可以通过管道将这些值传递给变量并使用

| gcc $variable.c -o $variable

生成可执行文件?

3 个答案:

答案 0 :(得分:4)

for i in *.c; do  # or explicitly enumerate the files
    gcc -o `basename $i .c` $i
done

答案 1 :(得分:1)

如果您安装了make,则内置的构建规则将足以构建您的二进制文件。

只需make hello即可获得二进制文件。无需明确调用gcc

答案 2 :(得分:0)

for f in *.c ; do gcc $f -o `echo $f | sed "s/\.c$//"`; done

(未经测试)