Libreria SDL

Gruppia
Ciao a tutti, sono alle prese con la grafica 2D interattiva in linguaggio C. Ho dei problemi tecnici con la compilazione da terminale tramite makefile. Ho costruito una libreria, che ho chiamato GCGraLib.c che mi aiuta ad interfacciarmi con la libreria SDL e a fare grafica 2D in modo semplice. Nel file GCGraLib.h ho incluso le librerie SDL/SDL.h, SDL/SDL_ttf.h, SDL/SDL_image.h ed SDL/SDL_video.h. Ma quando scrivo make da terminale mi dice che non trova il file SDL/SDL.H.

Cosa posso fare? Grazie a tutti!

Risposte
apatriarca
Probabilmente non hai installato correttamente le SDL.

Gruppia
Ho tentato di installare la libreria SDL-1.2.8 scaricandone l'archivio .tar da internet ed estraendone i file in una cartella; quindi da terminale mi sono posizionata in questa cartella e ho digitato ./configure --prefix=/usr --disable-debug &&
, e non ci sono stati problemi.
Poi ho digitato make && ,ma mi dà questo errore:
SDL_fbvideo.c:38: fatal error: asm/page.h: No such file or directory .
Cercando su internet ho trovato che page.h si occupa dell'impaginazione. Comunque togliendo nel file SDL_fbvideo.c la dipendenza da mi dà errore lo stesso.

Cosa devo fare?

apatriarca
Che distribuzione di linux stai usando? Il mio consiglio è quello di usare il pacchetto predefinito per la tua distribuzione che inserisce inoltre le librerie nelle locazioni predefinite per la distribuzione. Può ovviamente essere istruttivo seguire quella strada, ma credo che l'altra sia senza dubbio più facile. Eliminare la dipendenza da una libreria all'inizio di un file raramente serve a qualcosa.

Raptorista1
Se usi gcc, devi indicare esplicitamente che stai usando librerie "extra": prova a compilare con questo comando [conosco i flag per SDL e SDL_ttf, cerca quello per SDL_video ed aggiungilo all'elenco]
gcc nomefile1.c nomefile2.c -lSDL -lSDL_ttf

Gruppia
La distribuzione di Linux che ho è Ubuntu. Ho provato a compilare usando il comando consigliato da Raptorista (era proprio quello che avevo inserito nel Makefile) ma mi dà lo stesso errore perchè non trova il file/directory SDL/SDL.h, siccome non sono ancora riuscita ad installarla.
Ho già tentato di installare più e più volte altre versioni sella SDL, come la 1.2.10 e la 1.2.14, ma ho questi errori:

-con la SDL-1.2.14: facendo ./configure tutto bene; poi digito (sempre da terminale) make e mi dice che non c'è alcuna operazione da eseguire per <>; quindi procedo con make install e ottengo questo:
/bin/bash build-scripts/mkinstalldirs /usr/local/bin
/usr/bin/install -c -m 755 sdl-config /usr/local/bin/sdl-config
/usr/bin/install: impossibile creare il file normale `/usr/local/bin/sdl-config': Permesso negato
make: *** [install-bin] Errore 1
.

-con la SDL-1.2.8: con ./configure tutto bene, ma come vi dicevo ieri con make mi dà questo errore:
SDL_fbvideo.c:38: fatal error: asm/page.h: No such file or directory
compilation terminated.
.

-con la SDL-1.2.10:stesso errore che con la SDL-1.2.8, cioè dopo make mi dà:
./src/video/fbcon/SDL_fbvideo.c:32: fatal error: asm/page.h: No such file or directory
compilation terminated.
make: *** [build/SDL_fbvideo.lo] Errore 1
.

Con quale versione della SDL mi consigliate di procedere? E soprattutto: come devo procedere?

apatriarca
Come ti ho già detto, usa il gestore dei pacchetti della tua distribuzione per installarlo. È un metodo più facile e sicuro. Per cui apri il tuo gestore di pacchetti e cerca le SDL lì. Oppure usa apt-get se preferisci usare la linea di comando e prova qualcosa come libsdl-dev. Il nome esatto non lo ricordo.

Raptorista1
Concordo con apatriarca: su ubuntu Natty Narwal le prime due si chiamano libsdl1.2-dev e libsdl-ttf2.0-dev.
Considera sempre la compilazione dei sorgenti come ultima spiaggia, se e solo se i repository non sono sufficienti e non trovi il .deb già compilato.

Gruppia
Grazie mille, ci sono riuscita utilizzando il gestore dei pacchetti, come mi avevate detto!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.