Linux найти эквивалент команды для make-файла на windows - PullRequest
1 голос
/ 03 мая 2020

Я только что установил MinGW, и я собирался выполнить команду make для компиляции проекта, и я понял, что созданный мной make-файл отлично работает на 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")))

Но я думаю, что я не понимаю, как работает реж ...

1 Ответ

1 голос
/ 03 мая 2020

Вам лучше использовать групповой символ gnu make file - тогда он будет переносимым:

Работает так:

FILES=$(wildcard subdir/*.c)

Для вашего примера make-файла:

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