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

C++ Discussion :

Problème SDL_ttf et Code Blocks


Sujet :

C++

  1. #1
    Membre à l'essai
    Homme Profil pro
    Pensionné
    Inscrit en
    Octobre 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Pensionné

    Informations forums :
    Inscription : Octobre 2023
    Messages : 11
    Par défaut Problème SDL_ttf et Code Blocks
    Bonjour,
    J'utilise Code Blocks 20.03 (compilateur GNU GCC compiler) avec la librairie graphique SDL2 (SDL-devel-2.0.3-mingw). Je veux faire de l'affichage de texte et utilise SDL2_ttf-devel-2.0.18-mingw.
    Mes 3 premières lignes sont #include <SDL2/SDL.h> #include <SDL2/SDL_ttf.h> ou #include <SDL_ttf.h> et #include <stdio.h>.
    Quand je click sur Build pour vérifier mon programme j'ai "fatal erreur: SDL.h : No such file or directory" que cela soit dans la prog main.cpp ou SDL_ttf.h alors que ce dernier fichier est dans : Project - Build options - Projet Texte -linker settings (dans plusieurs endroits) comme le montre le fichier Projet Texte linker settings.jpg.
    J'ai aussi mes 3 fichiers comme le montre Projet Texte Search dir.jpg que cela sur linker avec lib ou compiler avec include et mon fichier SDL2.dll est mis dans le répertoire de mon projet.
    Est-ce que je pourrais avoir une solution pour résoudre ce problème?
    Merci.
    Images attachées Images attachées   

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 563
    Par défaut
    Les fichiers d'en-tête sont utilisés lors du pre-processing/compilation, a n'a donc rien à voir avec les options de l'éditeur de lien (linker).
    C'est donc dans les options du compilateur qu'il faut ajouter/corriger les répertoires de recherche.
    (Faites le ménage dans les options du linker, parce que là, c'est un peu la fête à la saucisse.)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Pensionné
    Inscrit en
    Octobre 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Pensionné

    Informations forums :
    Inscription : Octobre 2023
    Messages : 11
    Par défaut
    Même si je garde dans linker settings les fichiers libmingw.a , main.a , . dll , et un seul fichier SDL_ttf.h j'ai toujours le problème : no such file or directory.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Pensionné
    Inscrit en
    Octobre 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Pensionné

    Informations forums :
    Inscription : Octobre 2023
    Messages : 11
    Par défaut
    dans search directories - complier j'ai 3 répertoires includes :
    * codeBlocks\MinGW\include
    * i686-w64-mingw32\include de SDL2-devel et de SDL2_ttf
    donc pour moi ce n'est pas là ou il y a un problème à moins qu'il me manque un autre répertoire ?.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 563
    Par défaut
    et un seul fichier SDL_ttf.h
    Un .h n'a rien à faire dans le paramétrage du linker, ce n'est pas un type fichier géré par le linker.

    * i686-w64-mingw32\include de SDL2-devel et de SDL2_ttf
    C'est à dire ???

    Il faut donc que dans l'un des répertoires spécifiées dans "dans search directories - compilier", il y ait un sous-répertoire "SDL2" contenant un fichier "SDL.h".

    donc pour moi ce n'est pas là ou il y a un problème à moins qu'il me manque un autre répertoire ?.
    Si vous êtes si sûr de vous, faites des copies d'écran de la configuration des options du compilateur ainsi que d'un explorateur de fichiers montrant le chemin vers le sous-répertoire "SDL2" et le contenu de ce sous-répertoire.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 165
    Billets dans le blog
    4
    Par défaut
    Vus tes path, ton setup semble bien wild
    Tu as plusieurs sources dans la section Jeux/2d/3d
    https://alexandre-laurent.developpez...configuration/
    Y compris des templates pour C::B
    https://jeux.developpez.com/telechar...ur-Code-Blocks
    https://jeux.developpez.com/telechar...ur-Code-Blocks
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  7. #7
    Membre à l'essai
    Homme Profil pro
    Pensionné
    Inscrit en
    Octobre 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Pensionné

    Informations forums :
    Inscription : Octobre 2023
    Messages : 11
    Par défaut
    Voici une copie de search directories et recherche de SDL.h.
    Est-ce que je devrais mettre le fichier SDL.H dans search directories ?
    Images attachées Images attachées   

  8. #8
    Membre à l'essai
    Homme Profil pro
    Pensionné
    Inscrit en
    Octobre 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Pensionné

    Informations forums :
    Inscription : Octobre 2023
    Messages : 11
    Par défaut
    En fait SDL.h ne me pose pas de problème car il est repris dans include puis SDL2 ce n'est que SDL_ttf.h qui me donne des difficultés.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Pensionné
    Inscrit en
    Octobre 2023
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Pensionné

    Informations forums :
    Inscription : Octobre 2023
    Messages : 11
    Par défaut
    voici une copie de l'explorateur contenant le fichier SDL.h
    Images attachées Images attachées  

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 563
    Par défaut
    En fait SDL.h ne me pose pas de problème car il est repris dans include puis SDL2 ce n'est que SDL_ttf.h qui me donne des difficultés.
    Pouvez-vous être plus clair ???
    Donnez les copies d'écran qui justifierait vos conclusions, SVP ?

    Parce que initialement :
    Quand je click sur Build pour vérifier mon programme j'ai "fatal erreur: SDL.h : No such file or directory" que cela soit dans la prog main.cpp ou SDL_ttf.h
    il n'y aucune ambiguïté sur le fichier qui "manque".
    Le fait qu'il ne mentionne pas "SDL2", il y a des chances que le problème ne vienne pas de "#include <SDL2/SDL.h>" mais plus d'une ligne de la forme "#include <SDL.h> ou '#include "SDL.h"' dans un fichier quelconque du projet.
    Utilisez les options dans votre IDE pour avoir l'affichage des résultats de préprocessing. Mais, normalement, le message d'erreur devrait déjà indiquer le fichier cpp en cours de compilation qui pose problème, NE TRONQUEZ PAS LE MESSAGE D'ERREUR.

    Des chemins relatifs dans les "Search Directories" du compilateur, super. Mais relatif à quoi ???
    Et un chemin relatif qui passe par "Program Files (x86)", comment dire ? Ca sent pas la rose.

    Affichez les traces des commandes de génération (via les options de votre IDE, très probablement) pour savoir précisément ce que vous envoyez comme valeur dans les lignes de commandes exécutées par votre chaine de génération.

    Clairement, vous manquez de beaucoup de rigueur dans la configuration de votre chaine de génération.

    Dans votre copie d'écran sur la recherche d'un fichier "SDL.h", vous ne nous donnez même pas les chemins en entier. Comment vérifier que c'est "OK" ???
    Si vous comptiez accéder au fichier "SDL.h" qui est dans "C:/Program Files (x86)", c'est rappé car il y a un répertoire "opt" avant le répertoire "include" contenant un "SDL.h". (Et en plus il n'y a pas de répertoire "SDL2" dans cette arborescence)
    Pour les chemins contenant des répertoires commençant par "i686-w64...", vous êtes sûr qu'il faut les coller dans les options de compilation ???
    C'est le genre de répertoires que les options de compilation de type "TARGET PLATEFORM" gèrent "automatiquement".
    Normalement, c'est plus celui qui est dans ".../SDL2-2.0.3/include/" qu'il faut inclure car il est "TARGET PLATEFORM" agnostique. Si nécessaire, c'est ce fichier "SDL.h" qui fera de dispatching en fonction des "TARGET PLATEFORM" pour inclure la version spécifique au "TARGET PLATEFORM".
    Mais il n'y a pas de répertoire "SDL2" dans ces arborescences.
    Il manquerait pas un petit paquet de liens symboliques dans votre système de fichier pour que vos sources "compilent" correctement ???

    Le fichier indiqué dans la copie d'écran du message du "03/12/2025, 22h39", il peut "fonctionner" si le "../.." spécifié dans les options de compilation "tombe" sur "C:" mais rien ne le garantit car on ne connait pas le "working directory" de ces chemins.

    J'ai l'impression que vous gérez les "TARGET PLATEFORM" un peu beaucoup à l'arrache.

    N'avez-vous pas un peu trop lu de travers les instructions que vous suivez pour utiliser cette librairie dans ce vieux clou de C::B ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 23/10/2017, 16h12
  2. Installer SDL_TTF sur Code::Blocks
    Par amokh_123 dans le forum SDL
    Réponses: 2
    Dernier message: 03/11/2014, 10h31
  3. SDL 1.2 + SDL_Image + SDL_TTF Template pour Code::Blocks
    Par LittleWhite dans le forum Contribuez
    Réponses: 0
    Dernier message: 10/05/2013, 14h26
  4. Code blocks ajouter un .lib
    Par gl0be dans le forum Code::Blocks
    Réponses: 7
    Dernier message: 09/09/2006, 16h04

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