Linux 自定义bash通配符扩展
如果我这样做Linux 自定义bash通配符扩展,linux,bash,Linux,Bash,如果我这样做 *.c 它将返回以.c结尾的文件列表,并用空格分隔。但是,我希望它返回一个文件列表,前缀为#include“,后缀为”\n e、 g.产出 #include "blah.c" #include "meh.c" #include "hehe.c" 我想通过管道将结果传输到gcc-xc-中,因此,如果该命令是一行程序,则会获得额外的点数 (不,我不想只是cat*.c,因为它会丢失源位置信息)可能类似于 for f in *.c ; do printf '#include "%s"
*.c
它将返回以.c
结尾的文件列表,并用空格分隔。但是,我希望它返回一个文件列表,前缀为#include“
,后缀为”\n
e、 g.产出
#include "blah.c"
#include "meh.c"
#include "hehe.c"
我想通过管道将结果传输到gcc-xc-
中,因此,如果该命令是一行程序,则会获得额外的点数
(不,我不想只是cat*.c
,因为它会丢失源位置信息)可能类似于
for f in *.c ; do
printf '#include "%s"\n' $f
done | gcc -xc -
你应该做你想做的事
但是,gcc
接受多个源文件,因此您可以只执行以下操作
gcc -Wall *.c -o yourprog -lyourlibrary
您还可以将-g-O-flto
传递给gcc
或者类似的东西
for f in *.c ; do
printf '#include "%s"\n' $f
done | gcc -xc -
你应该做你想做的事
但是,gcc
接受多个源文件,因此您可以只执行以下操作
gcc -Wall *.c -o yourprog -lyourlibrary
您还可以将
-g-O-flto
传递到gcc
我没有测试这个,但这可能会做到
对于*.c中的a;echo'包括“$a”吗;完成了| gcc-xc-我没有测试这个,但是这个可能可以 对于*.c中的a;echo'包括“$a”吗;完成| gcc-xc-有一个更简单的方法:
printf '#include "%s"\n' *.c
有一个更简单的方法:
printf '#include "%s"\n' *.c
太好了,这就成功了。使用gcc的多源文件有点不同,因为它单独编译所有文件,这意味着它会一次又一次地浪费大量时间来处理相同的头文件。(另外我也不太相信-flto)如果你的
*.c
文件都是#include
-ing相同的公共header.h
,你可以用gcc-header.h-o header.h.gch
预编译它;而且我不认为解析头文件对于C代码来说是一个巨大的时间(对于C++代码来说可能是这样)。您可以使用-ftime report
程序参数gcc
来查找。而且-flto
与GCC4.7配合得很好!太好了,这就成功了。使用gcc的多源文件有点不同,因为它单独编译所有文件,这意味着它会一次又一次地浪费大量时间来处理相同的头文件。(另外我也不太相信-flto)如果你的*.c
文件都是#include
-ing相同的公共header.h
,你可以用gcc-header.h-o header.h.gch
预编译它;而且我不认为解析头文件对于C代码来说是一个巨大的时间(对于C++代码来说可能是这样)。您可以使用-ftime report
程序参数gcc
来查找。而且-flto
与GCC4.7配合得很好!太好了,谢谢,这就成功了。然而,当巴兹尔以一分钟的优势击败你时,我把这个问题交给了他:DGreat,谢谢,这真的很管用。然而,当巴兹尔以一分钟的优势击败你时,我向他提出了一个问题:非常好。像这样的东西正是我所希望的。非常好。这正是我所希望的。