GCC编译器:编译具有不同输出文件名的多个文件
问题描述:
是否可以编译多个文件并为不同名称的每个文件保存输出?我只从旧电脑复制.cpp文件到我的新电脑。这些程序都是无错误的,并进行了测试。所以现在我必须编译每个文件才能得到输出文件。大约有310个程序,所以很难编译每个文件separate.I通常保存输出文件相同的文件名没有任何扩展名。有什么办法编译目录中的所有文件,并保存每个文件输出分开。我期待着这样的命令GCC编译器:编译具有不同输出文件名的多个文件
gcc *.cpp -o *
如果有文件,
filename1.cpp
filename2.cpp等
我想要得到的输出文件如这个:
filename1
filename2等
编辑:
有什么办法.cpp文件的时间戳保存到输出文件?
答
如果每个文件应该有它自己的可执行文件,他们都在同一个目录,你可以这样做:
for i in *.cpp; do g++ $i -o `basename $i .cpp`; done
要添加时间戳:
for i in *.cpp; do g++ $i -std=c++11 -o `basename $i .cpp`-`date +%Y%m%d -r $i`; done
这将产生日期以YYYYMMDD格式文件名和连字符后
要更改修改日期:
for i in *.cpp; do g++ $i -std=c++11 -o `basename $i .cpp`; touch -t `date +%Y%m%d%H%M -r $i` `basename $i .cpp`; done
答
GCC编译器一次(内部)编译一个文件(但也有Link Time Optimization)。
您想使用像GNU make这样的生成器;根据您的需要调整this example(或that one)。
请在命令行尝试此操作:'for * in .cpp;做g ++ -o $ {file%*。cpp} $文件;完成' – Galik 2015-02-05 13:42:11
@Galik谢谢。有效 。 – CodeIt 2015-02-05 13:45:33
@Galik我已发布您的评论作为答案。 – CodeIt 2015-02-05 13:51:54