是否可以编译多个文件并为每个具有不同名称的文件保存输出?我只是将.cpp文件从旧计算机复制到我的新计算机。这些程序都没有错误并且经过测试。所以我现在必须编译每个文件才能得到输出文件。这里有大约310个程序所以很难分别编译每个文件。我通常使用相同的文件名保存输出文件,没有任何扩展名。有没有办法编译目录中的所有文件并单独保存每个文件输出。我期待着像这样的命令
gcc *.cpp -o *
如果有文件,
filename1.cpp
filename2.cpp等。
我想得到像这样的输出文件:
文件名1
filename2等。
编辑:
有没有办法将.cpp文件的时间戳保存到输出文件。??
答案 0 :(得分:3)
如果每个文件都有自己的可执行文件,并且它们都在同一个目录中,那么你可以这样做:
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
答案 1 :(得分:0)
你可以用" make"程序和合适的makefile。它使用规则(一些预定义的),用于转换" .cpp"文件到" .o"和可执行文件。快速检查显示GNU make确实有.cpp到.o的默认规则(很久以前,它没有)。
答案 2 :(得分:0)
GCC编译器(内部)一次编译一个文件(但也有Link Time Optimization)。
您想要使用像GNU make这样的构建器;根据您的需要调整this example(或that one)。