在用C语言编写的我的SDL项目中使用SDL_ttf.h时。编译器(在链接过程中,如出现目标文件并引用ld
)会显示错误消息
gcc -o ttftesting ttftest.o `sdl2-config --libs --cflags` -LSDL2_ttf -ggdb3 -O0 --std=c99 -lSDL2main -lSDL2
/usr/bin/ld: ttftest.o: in function `main':
/home/first/Code/c/testing/ttftest.c:8: undefined reference to `TTF_Init'
/usr/bin/ld: /home/first/Code/c/testing/ttftest.c:9: undefined reference to `TTF_Quit'
collect2: error: ld returned 1 exit status
make: *** [Makefile:30: ttftesting] Error 1
这是源文件。
#include <stdlib.h>
#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
int main(int argc, char *argv[]){
SDL_Init(SDL_INIT_TIMER);
TTF_Init();
TTF_Quit();
SDL_Quit();
return 0;
}
CFLAGS := `sdl2-config --libs --cflags` -LSDL2_ttf -ggdb3 -O0 --std=c99 -lSDL2main -lSDL2
这是Makefile中的内容。
我不太确定是什么原因导致此错误。我正在运行Arch Linux,并且都安装了libSDLdev库。 SDL_tiff.h也位于/ usr / include / SDL2 /中,但是存在链接错误。 Makefile的CFLAGS有问题吗?我把订单弄乱了吗?