Page 1 sur 3 123 DernièreDernière
Résultats de 1 à 10 sur 22

Sujet : [SDL] link error WinMain@16

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517

    [SDL] link error WinMain@16

    Salut,
    je commence la SDL, depuis que j\'aurrais du commencer.
    Je usi le tuto de DmXx qui est très bien.

    Mais quand je compile le premier prog, j\'ai bcp de link error.

    voici le code
    Code:
    #include <iostream.h>
    #include <stdlib.h>
    #include <SDL/SDL.h>
    
    int main()
    {
        SDL_Surface *screen;
        if( SDL_Init( SDL_INIT_VIDEO ) == -1 )
        {
            printf( \"Can\'t init SDL:  %s\\n\", SDL_GetError( ) );
            exit( 1 );
        }
    
        atexit( SDL_Quit ); 
        screen = SDL_SetVideoMode( 640, 480, 16, SDL_HWSURFACE );
    
        if( screen == NULL )
        {
            printf( \"Can\'t set video mode: %s\\n\", SDL_GetError( ) );
            exit( 1 );
        }   
    
        SDL_Delay( 3000 );
    
        return 0;
    }
    J\'obtiens des link error pour chaque fonction de SDL avec un dernier link error WinMain@16

    je vois pas pour le winmain@16 puisque j\'ai bien un main.

    Pour les autres link error je pense que c\'est parce que la lib n\'est pas compilée ou un truc dans le style mais je n\'avance pas plus.
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    665
    Il faut inclure le ou les .lib, c\'est ce qui permet d\'établir les liens avec la dll.
    Pour le winmain, euh c\'est une histoire de choisir Win32 console au lieu de Win32 Application au moment de la création de projet. Avec Win32 Application, il te faut utiliser WinMain à la place de main.
    Pour retrouver ce que ça change au niveau config du projet, je crois que c\'est dans settings mais j\'ai pas trouvé. Peut être une histoire de precompiled header (stdafx.h)
    [col=#FFDD1A]( [/col][col=#FF0000]B[/col]e [col=#FF0000]S[/col]i[col=#FF0000]d[/col]e [col=#FFDD1A])[/col]

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    C\'est pas une dll mais un .h a inclure.

    Puis, je fais juste un
    #include <iostream.h>
    #include <stdlib.h>
    #include <SDL/SDL.h>

    La ca marche, j\'ai trouvé le problème du WinMain@16
    dans la lib SDL_main, ils font
    #define main SDL_main
    ce qui change mon main en SDL_main.


    S\'il ne trouve pas de WinMain ca ne veut pas forcement dire qu\'il faut WinMain au lieu de main, j\'avais deja vu ca auparavant.

    Apres pour les autres linker error, je cherche tjrs.

    Je vois pas le bug.
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  4. #4
    Membre MP
    Inscrit
    août 2013
    Messages
    665
    Oui mais en général il faut inclure une lib en + d\'un .h
    [col=#FFDD1A]( [/col][col=#FF0000]B[/col]e [col=#FF0000]S[/col]i[col=#FF0000]d[/col]e [col=#FFDD1A])[/col]

  5. #5
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    ok et comment stp ?
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  6. #6
    Membre MP
    Inscrit
    août 2013
    Messages
    665
    3 méthodes :
    - la première est pour visual C++, (donc ça te concerne pas), tu rajoutes dans settings avec d\'autres librairies déjà présentes.
    - Tu rajoutes dans ton projet le .lib.
    - Tu utilises le précompilateur :
    #pragma comment(lib,\&quot;filename\&quot
    Voilà voilà,.
    [col=#FFDD1A]( [/col][col=#FF0000]B[/col]e [col=#FF0000]S[/col]i[col=#FF0000]d[/col]e [col=#FFDD1A])[/col]

  7. #7
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    ok merci Jis je vais essayer.
    C\'est la première fois que je vais utiliser pragma, j\'en suis très ému ops:
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

  8. #8
    Membre MP
    Inscrit
    août 2013
    Messages
    22
    Tu sais que dans dev-c++ pour utiliser la lib SDl il faut rajouter a attend je te file l\'article que j\'ai lu :

    sous dev-c++

    Avant de pouvoir compiler correctement, vous devez configurer le lieur pour qu\'il lie les fichiers librairies de la SDL (fichiers .A) à votre programme, pour ceci allez dans le menu Project &gt; Project options (ALT + P). Cliquez sur l\'onglet \&quot;Général\&quot;. Dans la case \&quot;Linker Options/Optional libs or Object files\&quot;, tapez : \&quot;-lmingw32 -lSDLmain -lSDL\&quot;. Cette manipulation devra être effectuée pour tous vos futurs projets utilisant la SDL.

    http://prografix.games-creators.org/document/170

    sous VC++

    http://prografix.games-creators.org/document/152

    si c\'est ca c tant mieux snon je seche :P:
    Rien de pire dans la vie que l\'ennui

  9. #9
    Membre MP
    Inscrit
    août 2013
    Messages
    665
    Tiens, je ne savais pas que les .lib n\'étaient que Visual c++, bon fais chier, encore un truc qui n\'est pas portable.
    [col=#FFDD1A]( [/col][col=#FF0000]B[/col]e [col=#FF0000]S[/col]i[col=#FF0000]d[/col]e [col=#FFDD1A])[/col]

  10. #10
    Membre MP
    Inscrit
    août 2013
    Messages
    22
    Tiens pour une fois je dit quelque chose que jis ne savait : c\'est le grand jour je sort le champ lol : :
    Rien de pire dans la vie que l\'ennui

Page 1 sur 3 123 DernièreDernière

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé