Makefile,链接库

时间:2015-12-18 12:51:17

标签: c makefile

我有4个源文件和5个头文件,我使用以下库:

  • SDL
  • SDL_gfx
  • SDLmain
  • SDL_ttf

但是当我尝试我的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,现在它可以正常工作。

1 个答案:

答案 0 :(得分:3)

你有一个额外的点。删除它。