Newsgroup: it.comp.os.linux.development
Titolo: compilazione SDL

Ho provato a compilare il seguente codice:
#include <iostream>
#include <SDL/SDL.h>
int main(int argc, char *argv()){
        if(SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) == -1){
                std::cerr << "Impossibile inizializzare : " << 
SDL_GetError() << std::endl;
                return 1;
        }
        SDL_QuitSubSystem(SDL_INIT_AUDIO);
        SDL_Quit();
        return 0;
}
e il g++ mi da i seguenti errori:
[silvio@localhost silvio]$ g++  sdl_demo.cc -o SDL_demo
/tmp/cc5fZ8Lu.o: In function `main':
/tmp/cc5fZ8Lu.o(.text+0xc): undefined reference to `SDL_Init'
/tmp/cc5fZ8Lu.o(.text+0x29): undefined reference to `SDL_GetError'
/tmp/cc5fZ8Lu.o(.text+0x6e): undefined reference to `SDL_QuitSubSystem'
/tmp/cc5fZ8Lu.o(.text+0x76): undefined reference to `SDL_Quit'
collect2: ld returned 1 exit status
Che devo fare? Grazie.
-- 
Abruzzo Silvio
studente, 16 anni
goku_...@libero.it
silvi...@aruba.it
 <---old e-mail address
http://utenti.tripod.it/abruzzosilvio/
 
^____^

 Che devo fare? Grazie.
linkare alla libreria
dovresti aggiungere uno switch tipo -lSDL (tiro ad indovinare sul nome 
della lib)

 Che devo fare? Grazie.
Ehm... leggere un po' di faq.
Devi linkare la libreria con il flag -lSDL
--
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.mascanc.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Asynchronous inputs are at the root of our race problems. !>-
                 D. Winker and F. Prosser

 
grazie del consiglio, ma mettendo quel flag mi da decine e decine di errori


 grazie del consiglio, ma mettendo quel flag mi da decine e decine di errori
devi aggiungere anche -lX11 e -lXext e -l{qualunque libreria sia ancora
necessaria per non avere undefined references cerca in
/usr/X11R6/lib/lib{NOME}.so e aggiungi i link con -l{NOME}}

 Che devo fare? Grazie.
Mancano le librerie per il linker.
da: 
http://www.libsdl.org/faq/FAQ-Linux.html#LINUX_2
----------------------------------------------------
Q: How do I add SDL to my project?
A: The short answer is use the output of the command "sdl-config --cflags --libs"
For example: gcc -o test test.c `sdl-config --cflags --libs`
If you are using home-grown Makefiles for your project, you can get the proper CFLAGS and LDFLAGS for SDL by adding the following lines to your Makefile:
SDL_CFLAGS := $(shell sdl-config --cflags)
SDL_LDFLAGS := $(shell sdl-config --libs)
[snip html]
----------------------------------------------------
byez
-- 
David Mugnai
Enter any 11-digit prime number to continue...

 grazie del consiglio, ma mettendo quel flag mi da decine e decine di errori
Fidati, e' la strada giusta. Ma non basta linkare solo la SDL, che fa
riferimento ad altre librerie. Anche queste vanno linkate.
Come minimo direi
-ldl
-lpthread
-lz
-lm 
--
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.mascanc.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! God Knows How Long I Tried To Change Fate !>-
  		Blind Guardian - Mordred's Song

 e il g++ mi da i seguenti errori:
sdl-config e' tuo amico.
Ad esempio:
gcc `sdl-config --cflags` pippo.c  `sdl-config --libs`
-- 
addio, e grazie per tutto il pesce