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 sous visual studio


Sujet :

SDL

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 95
    Points : 76
    Points
    76
    Par défaut SDL sous visual studio
    bonjour à tous, je suis le cours de mateo en langage c et la SDL coince sous visual studio, j'ai bien indiqué les emplacements des dossiers include et lib (version x86), j'ai ajouté SDL.lib;SDLmain.lib dans les dépendances, j'ai essayé les solutions d'une dizaine de forums en français et en anglais mais rien ne marche, meme après avoir simplifié mon code au maximum j'ai toujours les mêmes erreurs que voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Gravité	Code	Description	Projet	Fichier	Ligne	État de la suppression
    Erreur	LNK2019	symbole externe non résolu __imp__exit référencé dans la fonction _SDL_main	essai sdl1 2	C:\Users\aperikub\source\repos\essai sdl1 2\base c.obj	1	
    Erreur	LNK2019	symbole externe non résolu @_RTC_CheckStackVars@8 référencé dans la fonction _pause	essai sdl1 2	C:\Users\aperikub\source\repos\essai sdl1 2\base c.obj	1	
    Erreur	LNK2019	symbole externe non résolu @__security_check_cookie@4 référencé dans la fonction _pause	essai sdl1 2	C:\Users\aperikub\source\repos\essai sdl1 2\base c.obj	1	
    Erreur	LNK2019	symbole externe non résolu __RTC_CheckEsp référencé dans la fonction _SDL_main	essai sdl1 2	C:\Users\aperikub\source\repos\essai sdl1 2\base c.obj	1	
    Erreur	LNK2001	symbole externe non résolu __RTC_InitBase	essai sdl1 2	C:\Users\aperikub\source\repos\essai sdl1 2\base c.obj	1	
    Erreur	LNK2001	symbole externe non résolu __RTC_Shutdown	essai sdl1 2	C:\Users\aperikub\source\repos\essai sdl1 2\base c.obj	1	
    Erreur	LNK2019	symbole externe non résolu ___security_cookie référencé dans la fonction _pause	essai sdl1 2	C:\Users\aperikub\source\repos\essai sdl1 2\base c.obj	1	
    Erreur	LNK2001	symbole externe non résolu _WinMainCRTStartup	essai sdl1 2	C:\Users\aperikub\source\repos\essai sdl1 2\LINK	1	
    Erreur	LNK1120	8 externes non résolus	essai sdl1 2	C:\Users\aperikub\source\repos\essai sdl1 2\Debug\essai sdl1 2.exe	1
    et voici mon code:

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL.h>
     
    void pause();
    int main(int argc, char* argv[])
    {
        SDL_Surface* ecran = NULL;
        SDL_Init(SDL_INIT_VIDEO);
     
        ecran = SDL_SetVideoMode(640, 256, 32, SDL_HWSURFACE);
        if (ecran == NULL)
        {
            //fprintf(stderr, "erreur de chargement de la video: %s\n", SDL_GetError());
            exit(EXIT_FAILURE);
        }
     
     
        SDL_Flip(ecran);
        pause();
     
     
        SDL_Quit();
     
     
     
     
        return EXIT_SUCCESS;
    }
     
    void pause()
    {
        int continuer = 1;
        SDL_Event event;
        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch (event.type)
            {
            case(SDL_QUIT):
                continuer = 0;
            }
        }
     
     
    }

    PS: le fprintf est en commentaire parce que visual ne l'aimait pas non plus mais bon, chaque chose en son temps..

  2. #2
    Membre à l'essai
    Homme Profil pro
    Enfant
    Inscrit en
    Avril 2020
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 16
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enfant

    Informations forums :
    Inscription : Avril 2020
    Messages : 6
    Points : 13
    Points
    13
    Par défaut Rep
    Salut,

    Pourquoi utilises-tu la SDL1 et non la SDL2 ???

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 95
    Points : 76
    Points
    76
    Par défaut
    parce que le tuto de mateo est sur la 1 mais j'ai quand meme essayé avec SDL2 j'ai juste eu plus de messages d'erreurs (SDL_HWSURFACE et SDL_SetVideoMode() qui apparemment n'existent plus dans la version 2)

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Je vous conseille la lecture de cet article, afin que le processus de liaison d'une bibliothèque soit clair.
    Ensuite, je pense que vous n'avez pas lié sdlMain, mais je ne suis pas sûr de ça. Finalement, sur Developpez.com et pour aider les débutants, nous proposons des template de projet. Il suffit de télécharger, d'extraire et votre projet est opérationnel. Celui-ci vous intéressera.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 95
    Points : 76
    Points
    76
    Par défaut
    alors SDL2 fonctionne en suivant ce tuto https://alexandre-laurent.developpez...ration/#LIII-A
    je ne comprends d'ailleurs pas pourquoi, la procédure est la même que celle que j'essaye depuis trois jours sauf que les fichiers de la SDL sont dans le dossier du projet au lieu d'etre dans un dossier SDL à part (avec exactement la même arborescence).

    par contre le template pour SDL1.2 me donne les erreurs suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Gravité	Code	Description	Projet	Fichier	Ligne	État de la suppression
    Avertissement	D9035	l'option 'Gm' est déconseillée et sera supprimée dans une version ultérieure	SDL_Template_VS2008	C:\Users\aperikub\source\repos\SDL_Template_VS2008\cl	1	
    Avertissement	LNK4075	' /EDITANDCONTINUE' ignoré à cause de la spécification '/SAFESEH'	SDL_Template_VS2008	C:\Users\aperikub\source\repos\SDL_Template_VS2008\main.obj	1	
    Avertissement	LNK4098	conflit entre la bibliothèque par défaut 'msvcrt.lib' et les autres bibliothèques*; utilisez /NODEFAULTLIB:library	SDL_Template_VS2008	C:\Users\aperikub\source\repos\SDL_Template_VS2008\MSVCRTD.lib(initializers.obj)	1	
    Avertissement	LNK4217	le symbole '_fprintf' défini dans 'main.obj' est importé par 'SDLmain.lib(SDL_win32_main.obj)' dans la fonction '_ShowError'	SDL_Template_VS2008	C:\Users\aperikub\source\repos\SDL_Template_VS2008\LINK	1	
    Erreur	LNK2019	symbole externe non résolu __imp____iob_func référencé dans la fonction _ShowError	SDL_Template_VS2008	C:\Users\aperikub\source\repos\SDL_Template_VS2008\SDLmain.lib(SDL_win32_main.obj)	1	
    Erreur	LNK1120	1 externes non résolus	SDL_Template_VS2008	C:\Users\aperikub\source\repos\SDL_Template_VS2008\Debug\SDL_Template_VS2008.exe	1
    j'ai fait un essai de mon coté avec SDL 1.2 en utilisant exactement la même methode que dans le tuto pour SDL2 voila le code :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <stdio.h>
    #include <stdlib.h>
    #include <SDL/SDL.h>
     
    void pause();
     
    int main(int argc, char* argv[])
    {
    	SDL_Init(SDL_INIT_VIDEO);
    	SDL_Surface* screen = NULL;
    	screen = SDL_SetVideoMode(640, 480, 32, SDL_HWSURFACE);
    	if (screen == NULL)
    	{
    		exit(EXIT_FAILURE);
    	}
    	SDL_Flip(screen);
     
    	pause();
     
    	SDL_Quit();
     
    	return EXIT_SUCCESS;
    }
     
     
    void pause()
    {
    	int continuer = 1;
    	SDL_Event event;
     
    	while (continuer)
    	{
    		SDL_WaitEvent(&event);
    		switch (event.type)
    		{
    		case SDL_QUIT:
    			continuer = 0;
    		}break;
    	}
    }

    et voila les erreurs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Gravité	Code	Description	Projet	Fichier	Ligne	État de la suppression
    Avertissement	MSB4211	La propriété "IntermediateOutputPath" est définie à une valeur pour la première fois, mais elle a déjà été consommée à "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets (35,5)".	essai sdl1		36	
    Avertissement	MSB4211	La propriété "CleanFile" est définie à une valeur pour la première fois, mais elle a déjà été consommée à "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\Microsoft.CppCommon.targets (35,5)".	essai sdl1		337	
    Avertissement	LNK4098	conflit entre la bibliothèque par défaut 'msvcrt.lib' et les autres bibliothèques*; utilisez /NODEFAULTLIB:library	essai sdl1	C:\Users\aperikub\source\repos\essai sdl1\MSVCRTD.lib(initializers.obj)	1	
    Erreur	LNK2019	symbole externe non résolu __imp__fprintf référencé dans la fonction _ShowError	essai sdl1	C:\Users\aperikub\source\repos\essai sdl1\SDLmain.lib(SDL_win32_main.obj)	1	
    Erreur	LNK2019	symbole externe non résolu __imp____iob_func référencé dans la fonction _ShowError	essai sdl1	C:\Users\aperikub\source\repos\essai sdl1\SDLmain.lib(SDL_win32_main.obj)	1	
    Erreur	LNK1120	2 externes non résolus	essai sdl1	C:\Users\aperikub\source\repos\essai sdl1\Debug\essai sdl1.exe	1
    je comprends vraiment pas j'ai une erreur sur le fprintf alors que le code du tuto utilise exactement le même j'ai essayé d'utiliser /NODEFAULTLIB ça ne change rien j'ai trifouillé toutes les options qui avaient l'air vaguement pertinentes et rien!!!


    EDIT: je viens de remarquer que j'ai toujours une erreur sur fprintf dans le dernier code alors que je l'ai supprimé (il etait au dessus de exit(EXIT_FAILURE)); dans code blocks j'aurais utilisé la fonction "rebuild" pour recompiler integralement mais je ne sais pas quel est son équivalent dans visual studio (générer/nettoyer??)

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 859
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 859
    Points : 218 580
    Points
    218 580
    Billets dans le blog
    120
    Par défaut
    Par rapport à la SDL 1.2. Elle n'est pas mis à jour depuis longtemps et je pense qu'elle n'est donc pas compatible avec Visual Studio 2019.
    Pour le "rebuild", c'est "régénérer tout/régénérer la solution" sous Visual Studio.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    95
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ariège (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 95
    Points : 76
    Points
    76
    Par défaut
    ok merci bien!

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

Discussions similaires

  1. Compiler un projet BORLAND C++ sous Visual Studio 2003???
    Par vdumont dans le forum C++Builder
    Réponses: 4
    Dernier message: 13/03/2006, 22h13
  2. Connection Odbc via VC7 sous Visual studio 2003
    Par jlassira dans le forum MFC
    Réponses: 1
    Dernier message: 01/02/2006, 11h06
  3. Réponses: 6
    Dernier message: 09/12/2005, 15h48
  4. [debutant]opengl avec sdl sous visual c++
    Par bourinator dans le forum OpenGL
    Réponses: 1
    Dernier message: 13/06/2005, 11h24

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