Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con librerie SDL
Forum - C/C++ - Problema con librerie SDL

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
web_pirate (Normal User)
Rookie


Messaggi: 51
Iscritto: 27/12/2011

Segnala al moderatore
Postato alle 14:55
Sabato, 21/07/2012
Sto cercando di compilare questo codice usando le librerie SDL.
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <SDL/SDL.h>
  3. #include <stdlib.h>
  4.  
  5. #define H 800
  6. #define V 600
  7.  
  8. int main(){
  9.        
  10.         if(SDL_Init(SDL_INIT_VIDEO)<0){
  11.                 printf("\nErrore durante il carimento SDL.\n");
  12.                 return 0;
  13.         }else{
  14.                 atexit(SDL_Quit);
  15.         }
  16.        
  17. SDL_Surface *screen;
  18.  
  19. screen = SDL_Set_Video_Mode(H, V, 0, SDL_HWSURFACE|SDL_DOUBLEBUF);
  20.  
  21.         if(screen==NULL){
  22.                 printf("\nProblemi durante il settaggio dello schermo.\n");
  23.                 return 0;
  24.         }
  25.        
  26. return 0;
  27. }


E questo è la risposta di gcc:
Codice sorgente - presumibilmente Delphi

  1. win.c: In function `SDL_main':
  2. win.c:8: error: number of arguments doesn't match prototype
  3. C:/MinGW/bin/../lib/gcc/mingw32/3.4.5/../../../../include/SDL/SDL_main.h:57: err
  4. or: prototype declaration
  5. win.c:19: warning: assignment makes pointer from integer without a cast
  6. win.c:27:2: warning: no newline at end of file


Non ho installato bene le librerie?

PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:02
Sabato, 21/07/2012

l'errore indica che il prototipo della funzione main è sbagliato, per far funzionare sdl la funzione main deve avere uno dei seguenti prototipi:

Codice sorgente - presumibilmente C++

  1. int main( int argc, char *argv[] )
  2. int main( int argc, char **argv )


PM Quote
Avatar
web_pirate (Normal User)
Rookie


Messaggi: 51
Iscritto: 27/12/2011

Segnala al moderatore
Postato alle 15:05
Sabato, 21/07/2012
Ah ok. E come mai le SDL "pretendono" questo prototipo? Di solito non lo scrivo mai così...

PM Quote
Avatar
web_pirate (Normal User)
Rookie


Messaggi: 51
Iscritto: 27/12/2011

Segnala al moderatore
Postato alle 15:07
Sabato, 21/07/2012
Comunque ho cambiato il sorgente come da te suggerito ma a quanto pare ho installato male le librerie. Ecco l'errore:
Codice sorgente - presumibilmente VB.NET

  1. win.c: In function `SDL_main':
  2. win.c:19: warning: assignment makes pointer from integer without a cast
  3. C:\Users\Andrea\AppData\Local\Temp/cckrcaaa.o:win.c:(.text+0xe): undefined refer
  4. ence to `SDL_Init'
  5. C:\Users\Andrea\AppData\Local\Temp/cckrcaaa.o:win.c:(.text+0x2e): undefined refe
  6. rence to `SDL_Quit'
  7. C:\Users\Andrea\AppData\Local\Temp/cckrcaaa.o:win.c:(.text+0x57): undefined refe
  8. rence to `SDL_Set_Video_Mode'
  9. /mingw/lib/libmingw32.a(main.o):main.c:(.text+0x104): undefined reference to `Wi
  10. nMain@16'


PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:50
Sabato, 21/07/2012

devi anche linkare la libreria, non solo includere il file .h :)

PM Quote
Avatar
web_pirate (Normal User)
Rookie


Messaggi: 51
Iscritto: 27/12/2011

Segnala al moderatore
Postato alle 16:58
Sabato, 21/07/2012
Con -lSDL?

PM Quote
Avatar
RiccardoG97 (Member)
Pro


Messaggi: 133
Iscritto: 03/01/2012

Segnala al moderatore
Postato alle 17:34
Sabato, 21/07/2012
Dipende su che IDE/Compilatore sei...

Ultima modifica effettuata da RiccardoG97 il 21/07/2012 alle 17:34
PM Quote
Avatar
web_pirate (Normal User)
Rookie


Messaggi: 51
Iscritto: 27/12/2011

Segnala al moderatore
Postato alle 19:44
Sabato, 21/07/2012
Per scrivere il codice uso un semplice editor di testo, per compilare MinGW, quindi gcc...

PM Quote
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Segnala al moderatore
Postato alle 12:00
Domenica, 22/07/2012
si, se usi gcc (o g++) allora -lSDL, in ogni caso dai un'occhiata qui http://lazyfoo.net/SDL_tutorials/lesson01/index.php :k:

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo