这是一个有效的makefile吗?

时间:2013-10-17 01:13:25

标签: c++ makefile

我有一个makefile来构建我的C ++程序。这就是我想要它做的。 1.使用main.cpp和cipher.cpp,将它们编译成.o的 2.将两个.o连接两次,一个连接到一个名为cipher的可执行文件,另一个解密。

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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

decipher: cipher
        ln -f $< $@

请注意,我已使用automatic variables $<$@分别引用第一个先决条件的名称和目标的名称。它们在这里并不是绝对必要的,但我认为它们是很好的练习,因为当你开始指定更复杂的模式匹配规则时它们真的很方便。