gpt4 book ai didi

c++ - 更改此 makefile 以便它自动将目录中的所有文件视为依赖项?

转载 作者:行者123 更新时间:2023-11-30 05:19:19 25 4
gpt4 key购买 nike

这是我制作的第一个makefile,我需要你帮忙稍微修改一下。这是我现在的 makefile

VPATH = src
BUILD = build
BIN = bin
INCLUDE = C:\Users\sidhi\Desktop\Projects\sfml-snake\internalLibraries\include

$(shell mkdir -p build)
$(shell mkdir -p bin)

CC = g++
CFLAGS = -g -std=c++11
LIBS=-lsfml-graphics -lsfml-window -lsfml-system


G++_VER_LT48 := $(shell expr `$(CC) -dumpversion | cut -f1-2 -d.` \< 4.8 )
ifeq ("$(G++_VER_LT48)","1")
$(error old version of g++ not supported, upgrade to 4.8 or higher)
endif


default: bin/game


$(BIN)/game: $(BUILD)/main.o $(BUILD)/game.o $(BUILD)/food.o $(BUILD)/snake.o
$(CC) $(CFLAGS) -o $(BIN)/game $(BUILD)/main.o $(BUILD)/game.o $(BUILD)/food.o $(BUILD)/snake.o $(LIBS)


$(BUILD)/%.o: %.cpp
$(CC) -c $(CFLAGS) $< -o $@ -I $(INCLUDE)

我想更改它,将 build/目录中的所有文件添加为依赖项。像

bin/game: $(BUILD)/%.o

但这行不通。

另外,我怎样才能包含更多的 VPATH 路径?

最佳答案

GNU Make 有许多有用的内置函数,可用于生成文件列表。例如,这个:

SRCFILES := $(wildcard *.cpp) 

在当前目录中创建一个 .cpp 文件列表,然后:

OBJFILES := $(patsubst %.cpp,%.o,$(SRCFILES))

对该列表执行编辑以创建相应 .o 文件的新列表。

关于c++ - 更改此 makefile 以便它自动将目录中的所有文件视为依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41201144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com