我有一堆C
程序目录。我需要将它们一一编译并在主程序中使用结果。
所以我的主程序遍历目录结构[我不确定结构是什么,它可能会随着时间而改变]并一次编译一个C
程序,使用该结果进行一些计算。
所以如果我把主程序写进去C
,用nftw来遍历。
或者
编写一个 Shell 主程序。
哪种方法更好?
我有一堆C
程序目录。我需要将它们一一编译并在主程序中使用结果。
所以我的主程序遍历目录结构[我不确定结构是什么,它可能会随着时间而改变]并一次编译一个C
程序,使用该结果进行一些计算。
所以如果我把主程序写进去C
,用nftw来遍历。
或者
编写一个 Shell 主程序。
哪种方法更好?
我猜你使用的是兼容的 Unix/Linux/Cygwin 系统......
因此,我建议使用 shell 解决方案,因为它更适合目录处理。
Makefile
对于每个程序正如@Dogbert 所说make
,可用于构建多个程序。构建可以并行执行(使用选项-j
)。此外make
,还可以照顾依赖关系。
我不知道你是否使用了Makefile
语法。因此,我给出一个需要三个C
文件和一个头文件的程序的快速示例:
program: file1.o file2.o file3.o
gcc -o -o $@ $^
%.o: %.c header.h
gcc -c -o $@ $<
以下命令将并行编译file1.c
。然后链接阶段将等待这些树编译完成。file2.c
file3.c
make -j3
以下命令找到每个Makefile
并运行make
命令:
find . -name Makefile -exec make -j3 -f '{}' ';' 2>&1 | tee result.txt
如果您的计算机中有 8 个内核,则可以使用-j8
.
构建结果显示在 shell 屏幕上,也存储在result.txt
文件中。
我不知道你的系统是什么,或者你的知识。希望这能有所帮助。如果您不确定了解某些部分,请询问更多信息。;-)