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

Code::Blocks Discussion :

C::B ne compile pas (SDL)


Sujet :

Code::Blocks

  1. #1
    Membre actif
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Points : 271
    Points
    271
    Par défaut C::B ne compile pas (SDL)
    Bonjour,

    je suis actuellement en train d'essayer de rendre mon application portable pour Windows. J'ai installé C::B sur Windows et installé SDL grâce à ce tutoriel.

    J'ai créé un nouveau projet et j'y ai inclu mes .c, .h, mes images et mon .tff. Ensuite j'ai rajouté SDL.dll, SDL_image.dll et SDL_ttf.dll dans la racine de mon projet.

    J'essaye de compiler et j'ai un warning qui ne vient pas de mon code:
    Project : SDL Application
    Compiler : GNU GCC Compiler (called directly)
    Directory : C:\Documents and Settings\Pierrick\Bureau\Pacman\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: controles.c
    Compiling: game_over.c
    Compiling: gestion_fantomes.c
    Compiling: gestion_pacman.c
    Compiling: jeu.c
    Compiling: main.c
    Compiling: pause.c
    Compiling: chargement.c
    Linking console executable: SDLapp.exe
    C:\Program Files\CodeBlocks\lib\SDLmain.lib(./Release/SDL_win32_main.obj):C:\SDL-1.2.11\Src\.text[_main]+0x0): multiple definition of `main'
    C:\Program Files\CodeBlocks\lib/libmingw32.a(main.o):main.c.text+0x0): first defined here
    Warning: .drectve `/DEFAULTLIB:"MSVCRT" /DEFAULTLIB:"OLDNAMES" ' unrecognized
    C:\Program Files\CodeBlocks\lib\SDLmain.lib(./Release/SDL_win32_main.obj):C:\SDL-1.2.11\Src\.text[_main]+0x55): undefined reference to `_alloca_probe'
    C:\Program Files\CodeBlocks\lib\SDLmain.lib(./Release/SDL_win32_main.obj):C:\SDL-1.2.11\Src\.text[_WinMain@16]+0x181): undefined reference to `_alloca_probe'
    C:\Program Files\CodeBlocks\lib\SDLmain.lib(./Release/SDL_win32_main.obj):C:\SDL-1.2.11\Src\.text[_WinMain@16]+0x1c1): undefined reference to `_alloca_probe'
    collect2: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 1 warnings
    Comment puis-je arranger ça?

    Merci d'avance

    P.S: c'est la première fois que j'utilise code::blocks, avant je faisais tout sous emacs avec Ubuntu.
    Utilisez les balises "Code" (alt+c).
    Nous avons répondu à votre question? Pensez au tag

    Le "lol" est aux boulets ce que le ";" est aux programmeurs

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 369
    Points : 40 164
    Points
    40 164
    Par défaut
    Bien le bonjour,

    Tu essaies de linker SDLmain.lib. Ne devrais-tu pas prendre SDLmain.a ?
    Ca pourrait expliquer les erreurs en rapport avec MSVCRT.

    De plus, si mes souvenirs sont bons, il est indispensable que le main soit déclaré en spécifiant les arguments de la ligne de commande
    int main(int, char**)
    Ce qui expliquerait l'erreur multiple definition of `main'.

    Qu'as-tu défini comme options d'édition de liens ?

  3. #3
    Membre actif
    Homme Profil pro
    Analyste/développeur Java EE
    Inscrit en
    Janvier 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste/développeur Java EE

    Informations forums :
    Inscription : Janvier 2005
    Messages : 376
    Points : 271
    Points
    271
    Par défaut
    Quand je fais clic-droit ->build options, dans linker, j'ai:
    -mingw32
    -SDLmain
    -SDL
    -SDL_image
    -SDL_ttf

    Je ne comprends pas bien l'histoire du .a et .lib ?

    Ma fonction main est int main(int argc, char *argv[]).
    Utilisez les balises "Code" (alt+c).
    Nous avons répondu à votre question? Pensez au tag

    Le "lol" est aux boulets ce que le ";" est aux programmeurs

  4. #4
    Membre chevronné

    Homme Profil pro
    Appui fonctionnel senior
    Inscrit en
    Juin 2007
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Appui fonctionnel senior
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 461
    Points : 2 211
    Points
    2 211
    Par défaut
    si ca ne marche pas, essaie de rajouter cette ligne avant le main() :
    PS : il est possible que ce soit :
    a fait longtemps que j'ai pas utilisé la SDL

Discussions similaires

  1. Réponses: 10
    Dernier message: 06/03/2006, 10h15
  2. compile pas
    Par Bibouda dans le forum C
    Réponses: 7
    Dernier message: 08/11/2005, 17h02
  3. [WTK] HelloWorld qui compile pas
    Par metos256 dans le forum Java ME
    Réponses: 2
    Dernier message: 08/09/2005, 12h35
  4. [Delphi 2005] Librairie Word (Word_TLB) ne compile pas
    Par Brogomil dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 01/08/2005, 10h12
  5. Réponses: 5
    Dernier message: 01/08/2004, 01h11

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