1

我有一堆C程序目录。我需要将它们一一编译并在主程序中使用结果。

所以我的主程序遍历目录结构[我不确定结构是什么,它可能会随着时间而改变]并一次编译一个C程序,使用该结果进行一些计算。

所以如果我把主程序写进去C,用nftw来遍历。

或者

编写一个 Shell 主程序。

哪种方法更好?

4

1 回答 1

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.cfile3.c

make -j3

目录发现

以下命令找到每个Makefile并运行make命令:

find . -name Makefile -exec make -j3 -f '{}' ';' 2>&1 | tee result.txt

如果您的计算机中有 8 个内核,则可以使用-j8.

在主程序中重用

构建结果显示在 shell 屏幕上,也存储在result.txt文件中。

更多信息?

我不知道你的系统是什么,或者你的知识。希望这能有所帮助。如果您不确定了解某些部分,请询问更多信息。;-)

于 2012-11-17T01:23:10.910 回答