CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Erreurs

-pedrolan-
-pedrolan-
Niveau 7
24 octobre 2005 à 22:07:46

:salut: tout le monde.

J´ai créé un projet en C++ avec DevC++, en console application (il n´est pas fini).
J´utilise SDL_Mixer, je l´ai donc téléchargé sur le net, mais dans le dossier, il y avait le fichier header mais pas le .lib ou .a .
J´ai donc linké ce que je trouvais dans mon projet, à savoir SDL_Mixer.qpg.in, et SDL_Mixer.spec.in, et curieusement ça marche, il n´y a aucune erreur là-dessus.

Par contre, DevC++ me dit ça quand j´essaye de compiler:
-"[Linker error] undefined reference to ´Mix_CloseAudio´"
-"In function ´console main´:
[Linker error] undefined reference to ´SDL_main´"
-"Id returned 1 exit status"
-[Build error] [Pong.exe] Error 1"

J´aimerais que vous m´aidiez à résoudre ces problèmes de compilation.

Voici la source de mon programme:

  1. include <stdlib.h>
  2. include <iostream>
  3. include <SDL_Mixer/SDL_mixer.h>
  4. include <sdl.h>
  5. include <time.h>
  6. include <stdio.h>
  7. include <math.h>
  8. include <conio.h>
  9. include <windows.h>
  1. pragma comment( lib, "sdlmain.lib" )
  2. pragma comment( lib, "sdl.lib" )
  3. pragma comment( lib, "sdl_mixer.lib" )

SDL_Surface *screen;

void die(char* message = NULL)
{
Mix_CloseAudio();
SDL_Quit();
if (message != NULL)
printf("DIE: %s\r\n",message);
exit(1);
}

void init_SDL()
{
if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO) < 0)
{
printf( "Video initialization failed: %s\n", SDL_GetError() );
die();
}
screen = SDL_SetVideoMode(640, 480, 32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN);

if (screen == NULL)
{
printf("Unable to set video: %s\n", SDL_GetError());
die();
}

SDL_ShowCursor(0);
}

void intro()
{

SDL_Surface* screen;
SDL_Surface* firstscreen;
SDL_Event event;

SDL_Rect rect1;

SDL_Init(SDL_INIT_VIDEO);
screen = SDL_SetVideoMode(1024, 768, 32,SDL_HWSURFACE|SDL_DOUBLEBUF|SDL_FULLSCREEN);
SDL_ShowCursor(0);

firstscreen = SDL_LoadBMP("data/intro1.bmp");

rect1.x = 0;
rect1.y = 0;
rect1.w = 1024;
rect1.h = 768;

SDL_BlitSurface(firstscreen,NULL,screen,&rect1);

SDL_Flip(screen);

Sleep(6000);

//////////////////////////////////////////////////
/////////////////////////////////////////////

firstscreen = SDL_LoadBMP("data/intro2.bmp");

rect1.x = 0;
rect1.y = 0;
rect1.w = 1024;
rect1.h = 768;

SDL_BlitSurface(firstscreen,NULL,screen,&rect1);

SDL_Flip(screen);

while(1)
{
while(SDL_PollEvent(&event))
{
if (event.type == SDL_KEYDOWN)
{
if (event.key.keysym.sym == SDLK_RETURN) return;
}
}
}
}

int main()
{
init_SDL();
intro();
return 0;
}

Voici tout ce que j´ai linké:

intro1.bmp
intro2.bmp
libSDL.a
libSDLmain.a
SDL_Mixer.qpg.in
SDL_Mixer.spec.in

Voilà, j´espère que vous pourrez m´aider...

tomtomclancy
tomtomclancy
Niveau 9
24 octobre 2005 à 22:23:29

t´es sur que tu as bien les trois librairie au bon endroit, c´est a dire a la racine de ton projet ?
C´est en general pour cela les link error

-pedrolan-
-pedrolan-
Niveau 7
24 octobre 2005 à 22:26:47

Comment ça à la racine de mon projet?
Dans le dossier où sont tous les fichiers?
Comme SDL.dll?

Pseudo supprimé
Pseudo supprimé 25 octobre 2005 à 04:00:22
  1. pragma comment( lib, "sdlmain.lib" )
  2. pragma comment( lib, "sdl.lib" )
  3. pragma comment( lib, "sdl_mixer.lib" )

ce pragma est valable que pour Visual C++. Pour devcpp il faut aller dans les options de ton projet et rajouter tes 3 libs.

D´ailleur il ne dit rien la dessus le compilo sur ces pragma ?

De plus on ne link pas de .bmp ni de .in. ca ne veu stricement rien dir.

Ensuite je te conseil de récuprer le package de SDL mixer fait pour DevCpp, va voir dans update de devcpp, le .a sera surrement fourni avec.

Bon et puis pour finir SDL on l´utilise parfois vraiment parceque ca rend le code portable sinon franchement je ne suis pas du tout fan de cette lib. Après c´est sure que pour débuter c´est une solution.

Ensuite vérifie que les chemin d´accés au .a sont valides. Regarde les paths des librairie dans les option general de devcpp. Sinon pour pas te casser la tete met les dans le dossier lib de Devcpp... Bref ton probleme est bien vague, ca peut etre plein de choses.

Vengeur41
Vengeur41
Niveau 10
25 octobre 2005 à 10:29:27

Euh, tu peux m´expliquer pourquoi tu linke les bmp ?

Sinon faut les linker par ordre de dépendance.

-pedrolan-
-pedrolan-
Niveau 7
25 octobre 2005 à 11:53:25

Je ne sais pas... Une habitude (peut-être mauvaise)

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment