更改此MakeFile,以便它可以自动将目录中的所有文件视为依赖关系
change this makefile so that it will automatically consider all files in a directory as a dependency?
这是我正在制作的第一个makefile,我需要您的帮助来更改它。这是我现在拥有的makefile
VPATH = src
BUILD = build
BIN = bin
INCLUDE = C:UserssidhiDesktopProjectssfml-snakeinternalLibrariesinclude
$(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)
我想更改它,以使构建/目录中的所有文件都添加为依赖关系。像
bin/game: $(BUILD)/%.o
但这不起作用。
另外,我如何包含更多的vpath路径?
gnu制造具有许多有用的内置功能,您可以用来生成文件列表。例如,此:
SRCFILES := $(wildcard *.cpp)
在当前目录中创建一个.cpp文件的列表,然后以下内容:
OBJFILES := $(patsubst %.cpp,%.o,$(SRCFILES))
在该列表上执行编辑以创建相应.o文件的新列表。
您可以尝试以下操作:
OBJ=$(shell find $(PROJDIRS) -type f -name "*.o")
,然后:
$(BIN)/game: OBJ
希望这会有所帮助...
相关文章:
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- node-gyp 的先有鸡还是先有蛋的问题:指向依赖项中的头文件
- 提示存档文件中的动态库依赖项
- 如何在头文件中声明类模板(由于循环依赖关系)
- 对在不同二进制文件中创建的对象文件的依赖关系
- 在链接可执行文件之前查找静态库未解析的依赖项
- 在位置上运行具有依赖项的.exe文件
- 在生成文件中添加源文件并更新依赖项
- 在 Ubuntu 18.04 上,我编译的 cpp 可执行文件找不到 VTK7 依赖项
- cmake:构建依赖于非源文件.Qt帮助生成
- 更改 Cmake 文件以从源代码编译依赖项,而不是使用 FIND_PACKAGE
- 正确的生成文件依赖项列表 (C++)
- 我可以在我的 cmake 代码中手动使用 CMake 的 cpp 文件依赖项扫描程序吗?
- 将所有文件依赖于特定目录的依赖
- g++/c++生成文件依赖项以忽略boost标头
- 生成文件 - 依赖项生成
- 用于查找可执行文件依赖项的命令
- 使用 cmake 处理头文件依赖项
- 库文件依赖项冲突
- 生成文件模式规则:循环生成文件.o < - 删除生成文件依赖项