Problemi libreria SDL

Tutta l'informatica

Problemi libreria SDL

Messaggioda zakplus » lun ott 25, 2004 10:05 pm

Ciao a tutti!

Premetto che non sono proprio un guru del C :ride: ...

Ho scaricato ed installato (rpm) la libreria SDL per Linux dal sito http://www.libsdl.org/ (ho una Mandrake 10), ma cercando di compilare con gcc questo piccolo codice di test:

Codice: Seleziona tutto
#include<stdio.h>
#include<SDL.h>

int main(void){
  SDL_Init ( SDL_INIT_VIDEO );
  SDL_Quit;
  exit(0);
  }


ottengo questi errori:

/home/zakplus/tmp/ccr3wQ5Z.o(.text+0x16): In function `main':
: undefined reference to `SDL_Init'
collect2: ld returned 1 exit status

WHY? :mah:
Godetevi ogni illusione...

www.zakplus.altervista.org
Avatar utente
zakplus

Veterano
 
Messaggi: 297
Iscritto il: ven set 03, 2004 11:43 pm
Località: Livorno

Messaggioda The Elter » mar ott 26, 2004 2:05 pm

Hai linkato la libreria correttamente nelle opzioni di compilazione?
Quando la tigre ruggisce, si alzano forti venti; quando il drago grida, si addensano le nubi. Il verso della lepre o il raglio dell'asino invece non hanno alcun effetto sul vento e sulle nubi.
Avatar utente
The Elter

Veterano
 
Messaggi: 161
Iscritto il: lun set 22, 2003 10:41 am
Località: Firenze

Messaggioda RadomE » mar ott 26, 2004 6:54 pm

Perchè hai messo void come parametro al main?

Comunque prova a togliere il .h dall'include...
Si ricordano le idee ma non gli uomini, gli uomini muoiono le idee sono eterne. Ho visto gente uccidere in nome delle idee, li ho visti morire per difenderle. Ma non si pu? abbracciare un'idea, non la si pu? baciare. Le idee non sanguinano, non provano dolore. Le idee non amano.
Avatar utente
RadomE

Eroe
 
Messaggi: 820
Iscritto il: ven gen 10, 2003 12:02 pm
Località: Mi considero cittadino del mondo...WOW

Messaggioda zakplus » mar ott 26, 2004 7:00 pm

@ The Elter
Linkata! ora va bene... ve lo dicevo che ero C niubbo... :scherza: Grazie 1000!!

@ RadomE
Metto void quando non passo nessun parametro al main, lo faceva il mio prof con il C++, in C non serve?
Godetevi ogni illusione...

www.zakplus.altervista.org
Avatar utente
zakplus

Veterano
 
Messaggi: 297
Iscritto il: ven set 03, 2004 11:43 pm
Località: Livorno

Messaggioda Trix180 » mar ott 26, 2004 8:12 pm

zakplus ha scritto:Metto void quando non passo nessun parametro al main, lo faceva il mio prof con il C++, in C non serve?


Ehm, neanche in c++ serve, sinceramente non l' ho mai visto fare :mah:
[Trix180]
God invented man, and man invented the metric system.

La guerra e' pace
La liberta' e' schiavitu'
L'ignoranza e' forza

la religione ? l'oppio del popolo.

Jane, da quando ti ho conosciuto faccio caso alle piccole cose delle vita, gli uccellini che cinguettano, la rugiada che si spande tra le foglie, i semafori...
[/Trix180]
Avatar utente
Trix180

Maestro
 
Messaggi: 453
Iscritto il: sab mar 27, 2004 7:46 pm
Località: Val Di Taro

Messaggioda RadomE » mar ott 26, 2004 10:31 pm

In C++ void si usa come tipo nei metodi quando non vuoi che ritornino nulla, (tipicamente comunque è corretto mettere un return; alla fine del corpo della funzione) come parametro non ha molto senso...del main poi...tanto vale scrivere int main()....
Si ricordano le idee ma non gli uomini, gli uomini muoiono le idee sono eterne. Ho visto gente uccidere in nome delle idee, li ho visti morire per difenderle. Ma non si pu? abbracciare un'idea, non la si pu? baciare. Le idee non sanguinano, non provano dolore. Le idee non amano.
Avatar utente
RadomE

Eroe
 
Messaggi: 820
Iscritto il: ven gen 10, 2003 12:02 pm
Località: Mi considero cittadino del mondo...WOW

Messaggioda zakplus » mar ott 26, 2004 11:37 pm

Mmm... in effetti se tolgo void non cambia niente...
Non è un errore (almeno per il compilatore) ma se non lo metto mi pare uguale...
Abolito! :felice:
Godetevi ogni illusione...

www.zakplus.altervista.org
Avatar utente
zakplus

Veterano
 
Messaggi: 297
Iscritto il: ven set 03, 2004 11:43 pm
Località: Livorno

Messaggioda riko » mer ott 27, 2004 12:14 am

void come tipo di ritorno per C e per C++ e`

SBAGLIATO. (chiaramente la veemenza e` contro il tuo prof, non contro di te... inoltre i void main mi fanno accapponare la pelle, poiche` dal punto di vista dell'OS e` pure proprio sbagliato)

Andate pure a vedere lo standard cosa prescrive.
Ci sono solo due (tre) forme valide per main.

int main()
int main(int, char**)
int main(int, chat**, char**) [ questa non ricordo se e` ANSI o POSIX ]

@Radome: e` vero che gli header della libreria standard C++ dovrebbero non finire per .h (usare iostream.h invece di iostream e` abbastanza errato... deprecabile, diciamo), ma questo non vale per tutti gli header...
Dipende da come e` stata scritta la libreria, e in effetti poco importa, il discorso vale soprattutto per gli header della stdlib
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Messaggioda RadomE » mer ott 27, 2004 2:12 am

Si lo so riko, ma non conoscendo quella libreria ho pensato che potesse c'entrare il .h :ammicca:
Si ricordano le idee ma non gli uomini, gli uomini muoiono le idee sono eterne. Ho visto gente uccidere in nome delle idee, li ho visti morire per difenderle. Ma non si pu? abbracciare un'idea, non la si pu? baciare. Le idee non sanguinano, non provano dolore. Le idee non amano.
Avatar utente
RadomE

Eroe
 
Messaggi: 820
Iscritto il: ven gen 10, 2003 12:02 pm
Località: Mi considero cittadino del mondo...WOW

Messaggioda zakplus » mer ott 27, 2004 1:51 pm

riko ha scritto:void come tipo di ritorno per C e per C++ e`

SBAGLIATO. (chiaramente la veemenza e` contro il tuo prof, non contro di te... inoltre i void main mi fanno accapponare la pelle, poiche` dal punto di vista dell'OS e` pure proprio sbagliato)


Guarda, mi sono accorto che main deve restituire un int (che poi serve per informare il sistema operativo se il programma ha terminato in modo regolare o meno no?) girando un po' per i corsi sulla rete perchè il mio prof scriveva SEMPRE void main().
Poi mi sono accorto che qualche compilatore si incazz... :scherza:
Godetevi ogni illusione...

www.zakplus.altervista.org
Avatar utente
zakplus

Veterano
 
Messaggi: 297
Iscritto il: ven set 03, 2004 11:43 pm
Località: Livorno

Messaggioda RadomE » mer ott 27, 2004 7:47 pm

Certo che s'incazza ed ha ragione!

Alla fine di ogni main è opportuno terminare con return 0; proprio per dare il segnale al sistema che il programma è terminato correttamente.
Se metti void main chiaramento questo non avviene ed un buon compilatore te lo fa notare! :ammicca:
Si ricordano le idee ma non gli uomini, gli uomini muoiono le idee sono eterne. Ho visto gente uccidere in nome delle idee, li ho visti morire per difenderle. Ma non si pu? abbracciare un'idea, non la si pu? baciare. Le idee non sanguinano, non provano dolore. Le idee non amano.
Avatar utente
RadomE

Eroe
 
Messaggi: 820
Iscritto il: ven gen 10, 2003 12:02 pm
Località: Mi considero cittadino del mondo...WOW

Messaggioda riko » mer ott 27, 2004 10:53 pm

RadomE ha scritto:Si lo so riko, ma non conoscendo quella libreria ho pensato che potesse c'entrare il .h :ammicca:


Fra l'altro sarebbe da chiarire se anche gli sviluppatori di librerie terze dovrebbero rispettare questa convenzione o meno...

Per esempio nella PPL usano l'estensione.hh
Altre volte ho visto usare .hpp

Io personalmente continuo ad usare .h anche per gli header C++ miei, anche se non so quanto bene faccio... tempo fa avevo preso a chiamarli anche io .hh, ma poi avevo smesso non ricordo per quale ragione.
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Messaggioda riko » mer ott 27, 2004 10:58 pm

zakplus ha scritto:Guarda, mi sono accorto che main deve restituire un int (che poi serve per informare il sistema operativo se il programma ha terminato in modo regolare o meno no?) girando un po' per i corsi sulla rete perchè il mio prof scriveva SEMPRE void main().


Esattamente per questa ragione. Per esempio il classico

./configure && make

funziona su questo principio.

Se ./configure ha successo, restituisce 0, allorta si passa a fare il make. Se fallisce restituisce non 0 e tutto si ferma li. Fra l'altro la cosa carina di bash e` che siccome la cosa auspicabile e` che il programma restituisca 0, se vogliamo interpretare && come un operatore logico, 0 e` vero, e 1 e` falso :ride:

Oppure
apt-get update && apt-get dist-upgrade

Poi mi sono accorto che qualche compilatore si incazz... :scherza:


Ormai la maggior parte, afaik.
La pessima abitudine viene specialmente da chi ha militato con il Borland (e forse con i MS, ma non saprei).
-enrico
fibs = 0 : 1: [ a + b | (a, b) <- zip fibs (tail fibs) ]


Akropolix: Community OFF-TOPIC di IKSnet
http://www.akropolix.net/forum

"se do da mangiare a un affamato mi dicono che sono un santo, se mi chiedo perch? ? affamato mi dicono che sono un comunista" (Helder C?mara, Arcivescovo di Recife)
Avatar utente
riko

Supremo
 
Messaggi: 3329
Iscritto il: gio mar 04, 2004 4:28 pm
Località: Chiba City

Messaggioda zakplus » mer ott 27, 2004 11:31 pm

Bash rocks! :rock: :eheh2:
Godetevi ogni illusione...

www.zakplus.altervista.org
Avatar utente
zakplus

Veterano
 
Messaggi: 297
Iscritto il: ven set 03, 2004 11:43 pm
Località: Livorno

Messaggioda Trix180 » gio ott 28, 2004 11:43 am

riko ha scritto:Per esempio nella PPL usano l'estensione.hh
Altre volte ho visto usare .hpp

sarebbe buonissima convenzione usare .hh perchè "sembra" che alcuni compilatori abbiano comportamenti differenti a seconda delle estensioni :
.h -> c
.hh -> c++

nel dettaglio non so bene, ma era un chiodo fisso dei professori itis (che sia colpa del compilatore Borland ?)
[Trix180]
God invented man, and man invented the metric system.

La guerra e' pace
La liberta' e' schiavitu'
L'ignoranza e' forza

la religione ? l'oppio del popolo.

Jane, da quando ti ho conosciuto faccio caso alle piccole cose delle vita, gli uccellini che cinguettano, la rugiada che si spande tra le foglie, i semafori...
[/Trix180]
Avatar utente
Trix180

Maestro
 
Messaggi: 453
Iscritto il: sab mar 27, 2004 7:46 pm
Località: Val Di Taro

Prossimo

Torna a Tecnologia, internet, coding

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti