C++ 编译多个C++;使用make的文件
我第一次尝试使用Makefile。是否可以使用一个MaxFixor?/P>将2个不同的C++程序编译成2个可执行文件? 这里是我到目前为止所做的,但它只编译第一个C++ 编译多个C++;使用make的文件,c++,makefile,C++,Makefile,我第一次尝试使用Makefile。是否可以使用一个MaxFixor?/P>将2个不同的C++程序编译成2个可执行文件? 这里是我到目前为止所做的,但它只编译第一个 CFLAGS=-O3 -Wall series : ./problem1/series.cpp g++ $(CFLAGS) -o series ./problem1/series.cpp gn : ./problem1/gn.cpp g++ $(CFLAGS) -o gn ./problem1/gn.cpp 编辑
CFLAGS=-O3 -Wall
series : ./problem1/series.cpp
g++ $(CFLAGS) -o series ./problem1/series.cpp
gn : ./problem1/gn.cpp
g++ $(CFLAGS) -o gn ./problem1/gn.cpp
编辑:
如何阻止每次编译它(除非修改代码)
是的。你制造了一个“假”目标,它依赖于其他两个程序
all_programs : series gn
默认情况下,当您运行
make
make时,它会为看到的第一个目标运行规则。在您的情况下,这将是系列
目标
例如,您可以通过在命令行make gn
或make gn series
上指定任何其他目标来手动运行它们
如果您希望将默认值设置为构建多个第一个目标,请为其指定一个执行您所需操作的第一个目标
此目标的通用名称为all
。因此,您将在当前目标条目之前添加all:series gn
您可能还希望将该目标标记为.PHONY:all
,以便在创建了一些all
文件的情况下,运行make all
仍能以您期望的方式工作(并且不尝试根据其先决条件检查all
文件的修改时间等)。GNU make(标准品牌)功能强大且灵活。我建议阅读手册或一本好书。
all_programs : series gn