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

[SDL] IMG_Load avec Dev-C++

Ptival
Ptival
Niveau 10
17 juin 2004 à 23:19:23

Bonsoir ou bonjour !

J´aimerais charger une image au format PNG avec SDL, ainsi il faudrait que j´utilise IMG_Load de SDL_image...

J´ai extrait SDL_image.lib dans le dossier Lib/ J´ai extrait SDL_image.h dans le dossier / Include/Sdl/

Au début de mon projet j´ai mis :

  1. include < Sdl/SDL.h> #include < Sdl/SDL_image.h>

Et dedans il ya les commandes :

back = SDL_LoadBMP("fond.bmp");
image = IMG_Load("smiley.png");
image2 = SDL_LoadBMP("image.bmp");

Mais le problème est que si je compile avec ces Linkers Options : -lmingw32 -lSDLmain -lSDL -lSDL_Image J´obtiens l´erreur de linker : undefined reference to `IMG_Load´

Est-ce une mauvais syntaxe dans IMG_Load ? ( Je ne connais pas la syntaxe en fait, j´ai fait comme SDL_LoadBMP... Ou bien quel est le problème s´il vous plaît ?

lag-it
lag-it
Niveau 10
17 juin 2004 à 23:32:43

Les informations fournies par le compilateur sont précieuses, apprends à les comprendre :

erreur de linker : undefined reference to `IMG_Load´

L´erreur provient du linker.
As-tu ajouté le lien vers le fichier . lib dans Menu > Project/Project Options/Parameters/Linker/add... ?

Ptival
Ptival
Niveau 10
17 juin 2004 à 23:34:50

Oui comme j´ai dit j´ai mis -lSDL_image, et pourtant il y a erreur...

lag-it
lag-it
Niveau 10
17 juin 2004 à 23:41:20

L´utilisation de ces librairies additionnelle est certes malaisée :)

As tu essayé d´appeler d´autres fonctions de la bibliothèque IMG, pour voir si le problème vient uniquement de IMG_Load ?

Sinon la syntaxe est belle et bien :

. .. IMG_Load( char *nomFichier )

Ptival
Ptival
Niveau 10
18 juin 2004 à 02:34:12

Il semblerait que j´ai en fait la version C++ des libs...

Mais il n´y a pas sur le site SDL de version mingw32...

Ca daille...

dnob
dnob
Niveau 2
18 juin 2004 à 11:51:39

tu vas pas remettre ça Ptival...

les lib pour mingw32 disponible sur le site de la SDL :
http://www.libsdl.org/release/SDL-devel-1.2.7-mingw32.tar.gz

tu a quand même probablement la version C++ des libs car je doute qu´elle soit écrit en C, mais ce n´est pas opposé a avoir la version de mingw32 qui est un compilo et pas un langage.

dnob
dnob
Niveau 2
18 juin 2004 à 11:54:54

ERATUM

A l´encontre de ce que je viens de dire,la sdl est écrite en C et non pas en C++.

gollumkawder
gollumkawder
Niveau 10
18 juin 2004 à 12:18:48

Même si tu as rectifié le tir je voudrais savoir pourquoi tu penses que les libs étaient écrites en Cpp, les autres API graphique sont bien en C non ?

--log

dnob700
dnob700
Niveau 10
18 juin 2004 à 15:14:21

ben oui, c´était juste un moment d´égarement de ma part.

jejej
jejej
Niveau 9
22 janvier 2005 à 23:02:19

Et on peut créer sa propre API graphique ?
ou il faut un sdk spécial ? c juste pour savoir hein j´ai pas envie d´en faire une .

dnob700
dnob700
Niveau 10
23 janvier 2005 à 11:43:29

ça dépend du niveau de ton API ( celle que tu veux faire).

si tu veux programmer une autre directX alors tu n´a virtuellement besoin de rien d´autre, mais c´est un travail énorme.

si tu veux faire qqch plutot comme la SDL qui s´appuie déjà sur une autre lib ( OpenGL ou DirectX je suppose, mais j´en suis pas sur) dans ce cas là oui, il te faut DirectX par exemple.
Les performance sont un peu moins bonne, mais par contre tu peut écrire des fonctionnalité plus interessante et complexe ( car tu as moins de boulot avec le travail de base).

Mais le SDK de ces bibliothèque est entièrement gratuit donc il n´y a pas de problème pour l´avoir.

jejej
jejej
Niveau 9
23 janvier 2005 à 18:27:06

ok merci
mais je pensais qu´on ne pouvait rien faire de graphique rien qu´avec du c++ pur / ou c ?
Mais vous dites que directx ou les APIs graphiques sont ecrites en C . ..
Comment ils font ? ^^

ShellShock
ShellShock
Niveau 9
23 janvier 2005 à 19:35:39

Perso, moi j´utilise DevIL pour charger mes images. C´est assez simple d´utilisation, et ca supporte un bon nombre de format.

http://openil.sourceforge.net/

dnob700
dnob700
Niveau 10
23 janvier 2005 à 20:31:27

en dessous d´un certain niveau tu affiche des graphique en écrivant directement dans la mémoire de la carte graphique et ceux via de l´assembleur.

ce n´est pas exactement de C mais c´est tout comme.

jejej
jejej
Niveau 9
23 janvier 2005 à 20:56:13

Directx en fait c un mass :

  1. define D3DVERTEX ( mov eax ) ?

je veux dire , des macros ( #define ) avec ensuite le nom de la macro ( D3DVERTEX ) - je connais pas directx , mais les fonctions ressemblent a ca je crois ? - et après le " corps " de la fonction , écrit en ASM ( mov eax c le seul truc que je connais en asm :p) ) ?

dnob700
dnob700
Niveau 10
23 janvier 2005 à 21:55:23

non, c´est absolument pas des macro, mais des fonctions.

ensuite c´est écrit en très grose partit en C ou en C++ ( enfin je suppose, je ne sais pas exactement). Et tout en bas il doit y avoir une partit en asm ( ou alors de l´appel au drivers qui peut se faire en C).

si ça se trouve je t´ai dit de la merde et ya même pas d´asm.

par contre mov eax c´est pas de l´asm, il faut lui dire quoi bouger dans eax par exemple :
mov eax,2
et là ça mets 2 dans eax.

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