我有一堆带有C
程序的目录。我需要逐个编译它们并在主程序中使用结果。
所以我的主程序遍历目录结构[我不确定结构是什么,它可能会随着时间而改变]并一次编译一个C
程序,在一些计算中使用该结果。
所以如果我在C
中编写主程序并使用nftw来遍历。
OR
编写一个Shell主程序。
哪个appraoch更好?
答案 0 :(得分:0)
我猜你使用兼容的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
文件中。
我不知道你的系统或知识是什么。希望这可以提供帮助。如果您不确定某些部分,请询问更多信息。 ; - )