我有一个makefile来构建我的C ++程序。这就是我想要它做的。 1.使用main.cpp和cipher.cpp,将它们编译成.o的 2.将两个.o连接两次,一个连接到一个名为cipher的可执行文件,另一个解密。
我有两个可执行文件的原因是main.cpp通过检查argv来检查你正在使用哪个可执行文件,然后相应地进行密码或解密。
我写的makefile在这里:Makefile on Pastebin.com
这是一个有效/好的makefile吗?我想知道这是否会运作良好,以及是否有更好的方法可以做到这一点。
答案 0 :(得分:0)
是的,这当然有效。如果这两个可执行文件真的是相同的,你可以通过制作一个副本或另一个的硬链接来节省一些工作,而不是两次编译相同的代码:
cipher: main.o cipher.o
$(GCC) $(FLAGS) main.o cipher.o -o $@
decipher: cipher
ln -f $< $@
请注意,我已使用automatic variables $<
和$@
分别引用第一个先决条件的名称和目标的名称。它们在这里并不是绝对必要的,但我认为它们是很好的练习,因为当你开始指定更复杂的模式匹配规则时它们真的很方便。