Linux在windows上查找makefile的等效命令



我刚刚安装了MinGW,我打算执行make来编译一个项目,我意识到我得到的makefile在Ubuntu上运行得很好,但显然在windows上没有。这就是我得到的

G++ ?= g++
C_FLAGS = 0
BIN ?= program.exe
HDR_DIR ?= ./headers
OBJ_DIR ?= OBJ
SRC_DIR ?= SRC
FILES ?= $(basename $(notdir $(shell find $(SRC_DIR) -name "*.cc")))
SRC ?= $(addsuffix .cc, $(FILES))
OBJ ?= $(addsuffix .o, $(FILES))

$(BIN): $(addprefix ./OBJ/, $(OBJ))
$(G++) -g $^ -o $@
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cc
$(G++) -I$(HDR_DIR) -g -c -o $@ $<

所以我搜索了一下,我认为唯一需要更改的行是我定义FILES变量的地方。我尝试过:

FILES ?= $(basename $(notdir $(shell $(SRC_DIR) /s "*.cc")))

但我想我不明白dir是怎么工作的。。。

最好使用gnu-make文件通配符,这样它就可以移植了:

工作原理如下:

FILES=$(wildcard subdir/*.c)

对于您的makefile示例:

FILES ?= $(basename $(notdir $(wildcard $(SRC_DIR)/*.cc)))

最新更新