c++ - 这是一个有效的 makefile 吗?

标签 c++ makefile

我有一个生成文件来构建我的 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/

相关文章:

c++ - 代码生成工具测试

c# - 如何通过 IntPtr 将 C++ 数组编码到 C#

c++ - DirectShow DVD 播放

c - 如何使用 cmake 生成包含文件?

makefile - make vs $(MAKE) for submakes in makefile - 有什么区别?

c++ - 不用每次都编译使用alglib

c++ - new 和 delete 在 C++14 中仍然有用吗?

c++ - Altivec -- const 变量的加载

linux - 在 x86 ubuntu 上为 ARM 交叉编译 linux 内核模块

c - gcc - 文件无法识别 : File format not recognized