Linux 在 windows 上找到 makefile 的等效命令
Linux find command equivalent for makefile on windows
我刚刚安装了 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)))
我刚刚安装了 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)))