我不经常使用makefile,因此我只是如何制作基本的。我试过阅读如何解决我的问题,但我迷路了。我需要的是一个makefile,它有两个目标all并测试。这两个目标都需要使用g ++ -std = c + 11 -Wall -Werror -ansi -pedantic编译程序,当需要编译器构建可执行文件时,唯一需要编译的文件是main.cpp名为bin的新目录中的可执行文件。而且我假设如果我再次使用makefile,则需要检查bin是否已经创建。 我知道如何创建一个简单的makefile,如 所有: g ++ -std = c ++ 11 -Wall -Werror -ansi -pedantic main.cpp
在当前目录中创建一个名为a.out的可执行文件,但就我对makefileS的了解而言,这就是
答案 0 :(得分:0)
Makefile
所做的就是指定构建依赖项,以及执行这些依赖项的命令。
创建输出目录等等。人。不是make
的工作本身,而是取决于执行操作的命令。 Makefile
也没有指定构建命令输出的位置。当然,这是由执行的实际命令指定的。例如,gcc
选项用-o
选项指定编译输出的位置。所以:
all: bin/main
test: bin/main
bin/main: main.cpp
mkdir -p bin
g++ -std=c++11 -Wall -Werror -ansi -pedantic -o bin/main main.cpp
在这些情况下使用mkdir -p
非常方便。如果给定目录不存在,则会创建该目录。如果它已经存在,mkdir
只是安静地终止而没有错误。