Berikut ini adalah bagian dari Makefile saya saat ini:
CFLAGS = -O2 -Wall -pedantic -std=gnu++11 `sdl-config --cflags --libs` -lSDL_mixer
Saya telah menginstal libsdl dengan benar, SDL.h ada di /usr/include/sdl di tempat yang semestinya, tetapi tidak bisa dikompilasi. Saya juga memiliki baris #include "SDL.h"
di file .h saya, tetapi tetap tidak bisa.
Ada yang tahu mengapa?
Jika file header adalah /usr/include/sdl/SDL.h
dan kode Anda memiliki:
#include "SDL.h"
Anda perlu memperbaiki kode Anda:
#include "sdl/SDL.h"
Atau beritahu preprocessor di mana menemukan file-file include:
CFLAGS = ... -I/usr/include/sdl ...
Sering kali SDL berada di /usr/include/SDL
. Jika demikian maka #include <SDL.h>
direktif Anda salah, seharusnya #include <SDL/SDL.h>
.
Alternatif untuk itu adalah menambahkan direktori /usr/include/SDL
ke direktori include anda. Untuk melakukan itu anda harus menambahkan -I/usr/include/SDL
ke dalam flags kompilator...
Jika Anda menggunakan IDE, ini seharusnya cukup mudah juga...
Berkas header berada di
/usr/include/SDL/SDL.h
dalam kode c++ Anda, tarik header ini menggunakan
#include <SDL.h>
Anda memiliki penggunaan yang benar dari
`sdl-config --cflags --libs`
yang akan memberikan Anda
-I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT
-L/usr/lib/x86_64-linux-gnu -lSDL
pada saat Anda juga dapat melihat penggunaan ini yang berfungsi untuk instalasi standar
`pkg-config --cflags --libs sdl`
yang menyediakan Anda dengan
-D_GNU_SOURCE=1 -D_REENTRANT -I/usr/include/SDL -lSDL