1

我有一个生成文件来构建我的 C++ 程序。这就是我想要它做的事情。1. 获取 main.cpp 和 cipher.cpp,并将它们编译成 .o 2. 将两个 .o 链接在一起两次,一个成为一个名为 cipher 的可执行文件,另一个成为 decipher。

我有两个可执行文件的原因是 main.cpp 通过检查 argv 检查您正在使用的可执行文件,然后相应地进行加密或解密。

我写的makefile在这里:Makefile on Pastebin.com

这是一个有效/好的makefile吗?我想知道这是否会运作良好,以及是否有更好的方法来做到这一点。

4

1 回答 1

0

是的,这当然是有效的。如果这两个可执行文件确实是相同的,您可以通过制作另一个的副本或硬链接来节省一些工作,而不是将相同的代码编译两次:

cipher: main.o cipher.o
        $(GCC) $(FLAGS) main.o cipher.o -o $@

decipher: cipher
        ln -f $< $@

请注意,我使用了自动变量 $<,并$@分别引用了第一个先决条件的名称和目标的名称。它们在这里并不是绝对必要的,但我认为它们是很好的做法,因为当您开始指定更复杂的模式匹配规则时它们真的会派上用场。

于 2013-10-17T01:26:25.823 回答