GCC 编译器:编译具有不同输出文件名的多个文件

GCC Compiler: Compile Multiple files with different output file names

是否可以编译多个文件并以不同的名称保存每个文件的输出?我只将 .cpp 文件从旧计算机复制到我的新 one.Those 程序中,所有程序都没有错误,并且 tested.So 现在我必须编译每个文件以获得输出 file.There 大约有 310 个程序所以编译每个文件真的很难 separately.I 通常用相同的文件名保存输出文件而没有任何 extension.Is 有什么办法可以编译目录中的所有文件并单独保存每个文件输出。我期待这样的命令

gcc *.cpp -o *  

如果有文件,

filename1.cpp

filename2.cpp等

我想得到这样的输出文件:

文件名1

filename2 等

编辑:

有什么办法可以将.cpp文件的时间戳保存到输出文件中吗??

您可以使用 "make" 程序和合适的 makefile 来完成此操作。它使用规则(一些预定义的)将“.cpp”文件转换为“.o”和可执行文件。快速检查显示 GNU make 确实有 .cpp 到 .o 的默认规则(很久以前,它没有)。

GCC compiler is (internally) compiling one file at a time (but also has Link Time Optimization).

您想使用像 GNU make; adapt this example (or that one) 这样的构建器来满足您的需要。

如果每个文件都应该有自己的可执行文件并且它们都在同一个目录中,您可以这样做:

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