Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编译多个C++;使用make的文件_C++_Makefile - Fatal编程技术网

C++ 编译多个C++;使用make的文件

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 编辑

我第一次尝试使用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
编辑:

如何阻止每次编译它(除非修改代码)

是的。你制造了一个“假”目标,它依赖于其他两个程序

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