我有一个生成文件来构建我的 C++ 程序。这是我想要它做的。 1. 把main.cpp和cipher.cpp编译成.o的 2. 将两个 .o 链接在一起两次,一次成为一个名为 cipher 的可执行文件,另一次成为 decipher。
我有两个可执行文件的原因是 main.cpp 通过检查 argv 来检查您使用的是哪个可执行文件,然后相应地进行加密或解密。
我写的makefile在这里:Makefile on Pastebin.com
这是一个有效/良好的 makefile 吗?我想知道这是否有效,是否有更好的方法。
最佳答案
是的,这当然是正确的。如果这两个可执行文件确实旨在相同,您可以通过制作一个拷贝或另一个的硬链接(hard link)来节省一些工作,而不是将相同的代码编译两次:
cipher: main.o cipher.o
$(GCC) $(FLAGS) main.o cipher.o -o $@
decipher: cipher
ln -f $< $@
请注意,我使用了 automatic variables $<
和 $@
分别引用第一个先决条件的名称和目标的名称。它们在这里并不是绝对必要的,但我认为它们是很好的做法,因为当您开始指定更复杂的模式匹配规则时它们真的会派上用场。
关于c++ - 这是一个有效的 makefile 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19416622/