我有4个源文件和5个头文件,我使用以下库:
但是当我尝试我的makefile时,我收到以下错误:
/usr/bin/ld: cannot find -lSDL_gfx.
这是我到目前为止的make文件:
第一条规则将所有目标文件链接在一起,其他条目负责创建目标文件
CC=gcc
CFLAGS=-I -c -fmessage-length=0 -D_SDL_main_h -lSDL -lSDL_ttf -lSDL_gfx.
DEPS = game.h field.h cell.h allocate_field.h GUI.h
OBJ = game.o field.o allocate_field.o GUI.o
OUTPUT = game
all: $(OBJ)
@echo Programma aanmaken
gcc -o $@ $^ $(CFLAGS)
game.o : game.c field.h GUI.h
@echo Bezig met game.o te compileren
$(CC) -c -o game.o game.c
field.o : field.c allocate_field.h cell.h
@echo Bezig met field.o te compileren
$(CC) -c -o field.o field.c
allocate_field.o : cell.h
@echo Bezig met allocate_field.o te compileren
$(CC) -c -o allocate_field.o allocate_field.c
GUI.o : field.h cell.h
@echo Bezig met GUI.o te compileren
$(CC) -L/home/usr/lib/x86_64-linux-gnu -lSDL -lSDL_ttf -lSDL_gfx -c -o GUI.o GUI.c
.PHONY : clean
clean:
@echo Cleaning... Object files verwijderen
rm -f *.o
rm -f $(OUTPUT)
修改
我的库所在的目录是/ usr / lib / x86_64-linux-gnu。
我尝试使用上面提到的目录的echo命令,但我无法让它工作
编辑编辑
我认为你的意思是CFLAGS系列中的圆点。我删除了它,然后我收到了这个错误:
undefined reference to `IMG_Load' which is one the functions of the SDL_image library
然后我还添加了-lSDL_image,现在它可以正常工作。
答案 0 :(得分:3)
你有一个额外的点。删除它。