'SDL_TTF : undefined reference to "TTF_INIT"
I'm trying to learn how to use SDL_TTF library. But i'm unable to solve an error of type : undefined reference to "TTF_INIT"
here is the simple code that im trying to compile and use :
#include <stdlib.h>
#include <stdio.h>
#include <SDL2/SDL.h>
#include <SDL2/SDL_ttf.h>
int main(int argc, char *argv[]){
TTF_INIT();
TTF_Quit();
return EXIT_SUCCESS;
}
Here is CFLAGS of my makefile :
CFLAGS= `sdl2-config --cflags --libs`-lSDL2_ttf
Thank you in advance for your answer.
PS: i used sudo apt
to install SDL2 and SDL2_TTF
Solution 1:[1]
First, you are missing a space after your last backtick in CFLAGS
. Even then, it should look more like:
CFLAGS=`sdl2-config --cflags`
LFLAGS=`sdl2-config --libs` -lSDL2_ttf
Also, TTF_Init()
(note that it's not all caps) must come after SDL_Init()
.
Check out LazyFoo's tutorial all about this at http://lazyfoo.net/tutorials/SDL/16_true_type_fonts/index.php . You may want to start at the beginning, though (http://lazyfoo.net/tutorials/SDL/index.php).
edit: I thought I'd mention from the comments that while backticks work, it's more common to write $(shell sdl2-config --cflags)
Solution 2:[2]
You probably already solved it, but I got to this page and no, TTF_Init() doesn't need to come after SDL_Init as @contrapants sugested, as we can see in the chapter 2.2 of the manual.
So the problem with your code was really writing TTF_Init() in CAPS and missing the space between ` and -.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | contrapants |
Solution 2 |