IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SDL Discussion :

{SDL} compilation projet SDL sous windows.


Sujet :

SDL

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Par défaut Compilation projet SDL sous windows + Compilation de SDL_Gfx
    J'utilise CodeBlocks, mon projet tourne nickel sous linux (ubuntu) je souhaiterais produire une version windows. Mon projet utilise les modules additionnels suivants: SDL_image, SDL_ttf, SDL_mixer et SDL_gfx.
    Lorsque j'essaie de compiler mon projet cela m'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    C:\MinGW\lib\libmingw32.a(main.o):main.c:(.text+0x106):: undefined reference to `WinMain@16'
    :: === Build finished: 1 errors, 0 warnings ===
    Les sources dispos ici

  2. #2
    Rédacteur

    Avatar de loka
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    2 672
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 672
    Par défaut
    Bonjour,

    Comment as tu "linker" SDL dans les options du projet ?
    Un petit lien te montrant comment faire sous Code::Blocks :
    http://loka.developpez.com/tutoriel/...on/codeblocks/

    De même pour les modules additionnels :
    http://loka.developpez.com/tutoriel/...ib_codeblocks/

  3. #3
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    A mon souvenir, il faut ajouter -lSDLMain lorsqu'on compile sous windows.

    Jc

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Par défaut
    Que ce soit par VC 2005 Express ou en tentant de comprendre comment installer un cross-compiler sous linux, je ne parviens pas à compiler ce fichu module de SDL_gfx qui me manque pour produire une version windows.
    J'ai pourtant installer VC 2005, puis dézippé le wizard contenu dans le package du codeur de SDL_gfx mais cela génère des erreurs... faut-il compiler SDL puis utiliser SDL compilé par VC pour pouvoir compiler SDL_gfx ?
    Je commence à péter un cable là
    Tout est si simple sous linux, tu télécharges les dev packs sur les dépôts et basta... bref merci de m'aider parce que là je craque

  5. #5
    Expert confirmé

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Par défaut
    Citation Envoyé par LeFlou Voir le message
    Que ce soit par VC 2005 Express ou en tentant de comprendre comment installer un cross-compiler sous linux, je ne parviens pas à compiler ce fichu module de SDL_gfx qui me manque pour produire une version windows.
    J'ai pourtant installer VC 2005, puis dézippé le wizard contenu dans le package du codeur de SDL_gfx mais cela génère des erreurs... faut-il compiler SDL puis utiliser SDL compilé par VC pour pouvoir compiler SDL_gfx ?
    Je commence à péter un cable là
    Tout est si simple sous linux, tu télécharges les dev packs sur les dépôts et basta... bref merci de m'aider parce que là je craque
    Question : es-tu obligé d'utilisé VC2005 ? parce qu'avec Code::Blocks il n'y a aucun problème...

    Jc

  6. #6
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 625
    Par défaut
    Citation Envoyé par fearyourself Voir le message
    A mon souvenir, il faut ajouter -lSDLMain lorsqu'on compile sous windows.

    Jc
    je met aussi -lmingw32 pour avoir un winmain, sinon j'ai la même erreur
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Par défaut
    Vous allez dans "Settings->Compiler & Debugger" puis dans l'onglet Linker Settings pour ajouter '-lSDLMain -lmingw32' ou vous passez par clic droit sur le nom du projet puis Build Options puis Linker Settings ?

    Moi aussi je préférerais me passer de VC2005 mais étant donné que j'ai vu un projet sdl compilé avec sdl_gfx sous vc2005 ça m'a attiré pour le compiler mais si je pouvais m'en passer ça me dérangerait pas, bien au contraire...

  8. #8
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 625
    Par défaut
    Citation Envoyé par LeFlou Voir le message
    Vous allez dans "Settings->Compiler & Debugger" puis dans l'onglet Linker Settings pour ajouter '-lSDLMain -lmingw32' ou vous passez par clic droit sur le nom du projet puis Build Options puis Linker Settings ?
    si tu passes par : Settings -> Compiler & debugger
    tu vas modifier les options du cmompilateur pour TOUS les projects que tu compileras

    moi je passe par : Project -> Build options -> Linker settings
    pour modifier les options de compilation du projet en cours
    et tu dois avoir la liste suivante :
    1 - mingw32
    2 - sdlmain
    3 - sdl

    l'ordre est important, si mingw32 n'est pas en premier et sdlmain avant sdl il te fera une erreur
    undefined reference to `WinMain@16'
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Par défaut
    Ok merci ça c'est réglé pour compiler le projet SDL.

    Ensuite j'enchaine les erreurs dûes au manque des librairies de sdl_gfx.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:14: SDL_framerate.h: No such file or directory
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:50: error: ISO C++ forbids declaration of `FPSmanager' with no type
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:50: error: expected `;' before '*' token
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp: In constructor `GameEngine::GameEngine(SDL_Surface*)':
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:64: error: `fpsManager' was not declared in this scope
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:75: error: `FPSmanager' has not been declared
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:83: error: `SDL_initFramerate' was not declared in this scope
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:84: error: `SDL_setFramerate' was not declared in this scope
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:83: warning: unused variable 'SDL_initFramerate'
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:84: warning: unused variable 'SDL_setFramerate'
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp: In destructor `GameEngine::~GameEngine()':
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:108: error: `fpsManager' was not declared in this scope
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:109: error: type `<type error>' argument given to `delete', expected pointer
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp: In member function `int GameEngine::RunAjustement()':
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:516: error: `fpsManager' was not declared in this scope
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:516: error: `SDL_framerateDelay' was not declared in this scope
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:516: warning: unused variable 'fpsManager'
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:516: warning: unused variable 'SDL_framerateDelay'
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp: In member function `int GameEngine::RunAjustement2()':
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:905: error: `fpsManager' was not declared in this scope
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:905: error: `SDL_framerateDelay' was not declared in this scope
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:905: warning: unused variable 'fpsManager'
    D:\Programmation\C++\Bomberux\MoteurJeu.hpp:905: warning: unused variable 'SDL_framerateDelay'
     === Build finished: 13 errors, 6 warnings ===
    En effet, pour ce module, l'auteur file les sources à compiler soi meme et non plusieurs versions comme pour les autres modules comme sdl_image par exemple, où ils filaient les fichiers déjà compilés prêts à être placés dans son dossier SDL (.../include/ et .../lib/).

    Donc je ne sais pas trop par où commencer et je demande comment compiler ce module simplement

    Merci d'avance de m'accorder du temps.

  10. #10
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 625
    Par défaut
    les erreurs que tu as là sont des erreurs de compilation
    et il faudrait commencer par lui indiquer le bon emplacement de SDL_Framerate.h
    après t'etre assuré d'avoir ce fichier
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Par défaut
    En fait, j'ai copié tous les fichiers .h et .c de l'archive de sdl_gfx dans le dossier où j'ai entreposé SDL-1.2.12 dans le dossier include.

    Toutefois il manque encore des choses puisque lorsque je compile, je peux lire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     === Bomberux, Debug ===
    ld.exe: cannot find -lSDL_gfx
     === Build finished: 1 errors, 0 warnings ===
    Peut-être le fichier .lib ou .a ou encore la dll ?

    Edit: La compilation s'est effectué correctement une fois que j'ai rajouté le fichier .a qui manquait (libSDL_gfx.a).
    Je l'ai trouvé sur ce site, le monsieur a surement produit le pack en compilant lui même les sources fournis sur le site de l'auteur de sdl_gfx.

    Bref je suis content, mais la version qu'il a compilé date un peu, j'aimerais apprendre comment compiler (la version win32) des sources fournis par http://www.ferzkopp.net/joomla/content/view/19/14/

    Voilà voilà merci d'avance.

  12. #12
    Membre Expert
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 625
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 625
    Par défaut
    il te manquait effectivement libSDL_gfx.a
    et la dll de la biliothèque doit être dans le répertoire de l'application qui en a besoin à l'execution
    pour compiler SDL_gfx, tu dois créer un projet de type "Dynamic Link Library"
    tu supprimes tous les fichiers créés par codeblocks dans ton projet
    tu ajoutes tous les fichiers source de SDL_gfx à ton projet
    tu ajoute la bibliothèque SDL à ton projet (project -> build options -> linker settings)
    et tu compiles pour obtenir les 2 fichiers qu'il te faut :
    SDL_gfx.dll
    libSDL_gfx.a
    Tutoriels OpenGL
    Je ne répondrai à aucune question en MP
    - Si c'est simple tu dis que c'est compliqué et tu le fait
    - Si c'est compliqué tu dis que c'est simple et tu le sous-traite ou le fait faire par un stagiaire.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 69
    Par défaut
    Un énorme merci pour ta réponse.
    Vraiment c'est classe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Compilation projet c++ sous windows
    Par ulcan75017 dans le forum C++
    Réponses: 4
    Dernier message: 21/10/2013, 16h12
  2. Probleme de compilation d'ETHEREAL sous Windows
    Par beb30 dans le forum Développement
    Réponses: 6
    Dernier message: 16/02/2009, 16h26
  3. Réponses: 8
    Dernier message: 05/03/2008, 02h06
  4. [Cal3D] Problème de compilation avec Cal3D sous windows
    Par nicoenz dans le forum Moteurs 3D
    Réponses: 2
    Dernier message: 15/11/2006, 09h46
  5. Compiler un code sous windows
    Par KORTA dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 30/09/2003, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo