【发布时间】:2021-06-01 07:36:21
【问题描述】:
我为 SDL2 项目制作了一个模板文件夹。我按照 Lazy Foo 的这个教程:http://lazyfoo.net/tutorials/SDL/01_hello_SDL/windows/mingw/index.php 创建了我的 makefile。
我的生成文件:
OBJS = ..\code\main.c
CC = gcc
INCLUDE_PATHS = -IC:\mingw-libraries\include\SDL2
LIBRARY_PATHS = -LC:\mingw-libraries\lib
COMPILER_FLAGS = -w
LINKER_FLAGS = -lmingw32 -lSDL2main -lSDL2
OBJ_NAME = main.exe
all : $(OBJS)
$(CC) $(OBJS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(COMPILER_FLAGS) $(LINKER_FLAGS) -o $(OBJ_NAME)
所以这在我想编译 main.c 时有效,但是当我想编译代码目录中的所有内容时 我明白了:
makefile:
OBJS = ..\code\*.c
CC = gcc
INCLUDE_PATHS = -IC:\mingw-libraries\include\SDL2
LIBRARY_PATHS = -LC:\mingw-libraries\lib
COMPILER_FLAGS = -w
LINKER_FLAGS = -lmingw32 -lSDL2main -lSDL2
OBJ_NAME = main.exe
all : $(OBJS)
$(CC) $(OBJS) $(INCLUDE_PATHS) $(LIBRARY_PATHS) $(COMPILER_FLAGS) $(LINKER_FLAGS) -o $(OBJ_NAME)
这是我得到的错误:
mingw32-make: *** No rule to make target '..\code\*.c', needed by 'all'. Stop.
【问题讨论】:
-
试试
OBJS = $(wildcard ../code/*.c)。