0
我想要编译来自同一来源我的程序的第二个版本(使用#ifdef TESTS
等),那就是:如何使用GNU Make从相同的源代码编译第二个版本的程序?
prog.cpp --(compile)--> prog-tests
我可以用下面的Makefile
规则认识到这一点:
prog-tests: prog.cpp
$(LINK.cpp) -DTESTS $^ $(LOADLIBES) $(LDLIBS) -o [email protected]
或
prog-tests: CPPFLAGS += -DTESTS
prog-tests: prog.cpp
$(LINK.cpp) $^ $(LOADLIBES) $(LDLIBS) -o [email protected]
此版本是首选/最佳做法?我想尽可能使用隐式规则。
(我使用的GNU让4.0)。
这是一个品味问题。我更喜欢第二个版本。很多时候,程序都是从*几个*翻译单元构建而成的。然后,您可能需要'foo.debug.o'作为调试版本,'foo.o'版本版本 – 2014-11-25 09:37:58
请参阅http://stackoverflow.com/questions/21568244/object-file-directory-per-compiler-option-另一种方法的组合。 – 2014-11-25 09:53:25