Visualizzazione dei risultati da 1 a 7 su 7

Discussione: SDL 1.2.7 Linux

  1. #1

    SDL 1.2.7 Linux

    Ho portato un codice SDL scritto sotto WindowsXP con DevC++ sotto Linux ma ho alcune difficoltà con il compilatore.
    Che parametri devo passare a gcc/g++ per linkare le librerie SDL 1.2.7 (mi pare)?
    Il programma è compilato correttamente ma è pieno di buchi di linking

  2. #2
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Se non sbaglio per le librerie sdl devi passare al gcc (o g++) l'opzione "-lSDL"...
    Ricevi altri errori?
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  3. #3
    Ho compilato il programma che fa uso di SDL.h e SDL_ttf.h con questi parametri: gcc tw.cpp - o tw -lSDL -lSDL_ttf
    Stavolta l'ha compilato, ma lanciando un ./tw quello che ottengo è un: Segmentation Fault (SDL Parachute Deployed)
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

  4. #4
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Originariamente inviato da zaknafein
    Ho compilato il programma che fa uso di SDL.h e SDL_ttf.h con questi parametri: gcc tw.cpp - o tw -lSDL -lSDL_ttf
    Stavolta l'ha compilato, ma lanciando un ./tw quello che ottengo è un: Segmentation Fault (SDL Parachute Deployed)
    La colpa dei Segmentation non sta nelle librerie che usi (a meno che non siano buggate VVoVe: ), ma nel codice...
    Prova a mettere dei controlli... Ad esempio ogni decina di righe metti una funzione di output: `cout << "x\n";` (e' importante che ci sia il \n: se non mandi a capo la frase non viene flushata subito e quindi devi flusharla manualmente `cout << "x" << flush`;, altrimenti cio' che stai per fare non servira' a niente)...
    Quindi fai eseguire lo script e controlla quante volte viene stampato il messaggio, con l'obbiettivo di individuare l'errore...
    Molto probabilmente l'errore ha a che fare con la memoria (soprattutto dinamica)...

    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

  5. #5
    Proverò, anche se mi sembra molto strano... il codice sotto Windows funzionava bene senza problemi, ma ho dovuto proseguire sotto Linux poichè la libreria SDL_ttf sotto Windows non sono riuscito a trovarla
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

  6. #6
    Ma che significa SDL Parachute Deployed ?
    Windows 7 x64 + Ubuntu Linux 10.10 (Default)
    In principio era il C...
    C/C++ & C# & JavaSE/EE Developer

  7. #7
    Utente di HTML.it L'avatar di /dev/null
    Registrato dal
    May 2004
    Messaggi
    1,936
    Originariamente inviato da zaknafein
    Ma che significa SDL Parachute Deployed ?
    Quando un programma riceve un segnale SIGSEGV (e' l'errore che invia il kernel quando cerchi di utilizzare una zona della memoria che non e' sotto il controllo del tuo programma) puo' decidere di gestirlo...
    Le librerie SDL lo gestiscono... Hanno scelto di terminare comunque il programma ma ti avvisano che l'hanno gestito... utile no?

    Segui il consiglio che ti ho dato prima
    Oppure se il codice e' corto prova a postarlo...


    Sotto win puo' non accadere per mille motivi... Ogni libreria del C puo' gestire tutto come vuole purche' segua gli standard ansi...
    Le GLibC (GNU C Libraries, le librerie usate da tutti gli GNU/Linux, che prendono lo "GNU" proprio per questo) sono molto severe e magari gestiscono in maniera differente alcune operazioni su puntatori nulli, su puntatori non allocati etc e così se esegui qualche operazione non molto corretta, ma poco pericolosa, con la quale altre librerie decidono di chiudere un occhio, le glibc ti fermano...
    Ultima modifica ad opera dell'utente /dev/null il 01-01-0001 alle 00:00

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.