我正在用 msys 和 MinGW 编译和调试我的小项目。有时,它编译得很好,但大约 2/3 的时间会打印以下错误消息:
include/player.h:1:0: fatal error: can't create precompiled header
bazglx.exe:invalid argument
compilation terminated.
make: *** [bazglx.exe] Error 1
最上面一行是芬兰语,所以我不得不翻译它,它可能与英语不一样。这是我的生成文件:
CC = g++
IDIR = include
ODIR = obj
SDIR = src
CFLAGS = -I $(IDIR) -static-libgcc -static-libstdc++ -Wall -ggdb
LFLAGS = -lSDL_gfx
_OBJ = main.o init.o mainloop.o render.o map.o player.o
_DEPS = init.h mainloop.h render.h map.h player.h
OBJ = $(patsubst %.o, $(ODIR)/%.o, $(_OBJ))
DEPS = $(patsubst %.h, $(IDIR)/%.h, $(_DEPS))
$(ODIR)/%.o:$(SDIR)/%.cpp
$(CC) $^ -o $@ `sdl-config --cflags` $(CFLAGS) -c
bazglx.exe:$(OBJ) $(DEPS)
$(CC) $^ -o $@ `sdl-config --libs --cflags` $(CFLAGS) $(LFLAGS)
有时它甚至会显示错误消息,但会创建损坏的 exe。它归咎于文件的开头没有什么特别之处,它甚至归咎于其他文件。这真的很令人困惑和烦人,并且真的减慢了我的进步。