Makefile-从源生成目标
我正在尝试使用make构建越来越多的.cpp文件。它们都位于子目录src/中。我想将每个文件编译成它自己的可执行文件,驻留在bin/中。 这是我到目前为止尝试过的,但它不起作用,而且因为我是新手,所有的模式、变量等都使得很难确定什么扩展到了什么等等Makefile-从源生成目标,makefile,Makefile,我正在尝试使用make构建越来越多的.cpp文件。它们都位于子目录src/中。我想将每个文件编译成它自己的可执行文件,驻留在bin/中。 这是我到目前为止尝试过的,但它不起作用,而且因为我是新手,所有的模式、变量等都使得很难确定什么扩展到了什么等等 CXX = g++ CXXFLAGS = -Wall -Wextra -pedantic SRC = $(wildcard src/*.cpp) BIN = $(patsubst src/%.cpp,bin/%,$(SRC)) all: $(BI
CXX = g++
CXXFLAGS = -Wall -Wextra -pedantic
SRC = $(wildcard src/*.cpp)
BIN = $(patsubst src/%.cpp,bin/%,$(SRC))
all: $(BIN)
%: scr/%.cpp
$(CXX) $(CXXFLAGS) $< -o $@
CXX=g++
CXXFLAGS=-Wall-Wextra-pedantic
SRC=$(通配符SRC/*.cpp)
BIN=$(patsubst src/%.cpp,BIN/%,$(src))
全部:$(BIN)
%:scr/%.cpp
$(CXX)$(CXXFLAGS)$<-o$@
另外,是否有一种方法可以只显示BIN的内容,例如,让我查看正在发生的事情?这就是您的最终扩展的样子
file: scr/bin/file.cpp
为什么不这样做呢
BIN = $(patsubst src/%.cpp,%,$(SRC))
all: $(addprefix bin/, $(BIN))
bin/% : src/%
$(GCC) $(FLAGS) $< -o $@
这就是您的最终扩展的样子
file: scr/bin/file.cpp
为什么不这样做呢
BIN = $(patsubst src/%.cpp,%,$(SRC))
all: $(addprefix bin/, $(BIN))
bin/% : src/%
$(GCC) $(FLAGS) $< -o $@
非常感谢!至少我离得不远:-)多谢!至少我离得不远:-)make中有许多约定,遵循这些约定是明智的。CC是C编译器,CXX是C++编译器,cFLAGS是$(CC)的标志,CXXFLAGS是$(CXX)的标志,CPPFLAGS是预处理器的标志。有许多约定使它明智地遵循。CC是C编译器,CXX是C++编译器,cFLAGS是$(CC)的标志,CXXFLAGS是$(CXX)的标志,CPPFLAGS是预处理器的标志。