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

SDL Discussion :

TTF_Init ne fonctionne pas - undefined reference


Sujet :

SDL

  1. #1
    Membre à l'essai Avatar de Zanaki
    Homme Profil pro
    Hunter
    Inscrit en
    Novembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hunter
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2017
    Messages : 20
    Points : 19
    Points
    19
    Par défaut TTF_Init ne fonctionne pas - undefined reference
    Hey bien le bonsoir tout le monde !

    Je n'arrive pas à faire fonctionner la commande TTF_Init();. Je ne sais plus quoi faire pour que ça fonctionne. J'ai bien placer les fichier au bon endroits, j'ai aussi rajouter le chemin via code::block etc...

    Si j'enlève cette commande le programme fonctionne et ne m'indique aucune erreurs... Mais juste avec cette commande il me trouve 50 erreurs oO Est-ce possible ??

    Voici les erreurs;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
     
    ||=== Build: Debug in SDL2 (compiler: GNU GCC Compiler) ===|
     
    F:\Programmation 3D\CodeBlock\Projets SDL\SDL2\main.c||In function 'SDL_main':|
     
    F:\Programmation 3D\CodeBlock\Projets SDL\SDL2\main.c|13|warning: multi-line comment [-Wcomment]|
     
    F:\Programmation 3D\CodeBlock\Projets SDL\SDL2\main.c|22|warning: multi-line comment [-Wcomment]|
     
    F:\Programmation 3D\CodeBlock\Projets SDL\SDL2\main.c|31|warning: multi-line comment [-Wcomment]|
     
    F:\Programmation 3D\CodeBlock\Projets SDL\SDL2\main.c|24|warning: variable 'pWindow' set but not used [-Wunused-but-set-variable]|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `Load_Glyph':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|609|undefined reference to `FT_Load_Glyph'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|671|undefined reference to `FT_Outline_Transform'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|677|undefined reference to `FT_Get_Glyph'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|678|undefined reference to `FT_Stroker_New'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|694|undefined reference to `FT_Render_Glyph'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|895|undefined reference to `FT_Done_Glyph'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|607|undefined reference to `FT_Get_Char_Index'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|682|undefined reference to `FT_Stroker_Set'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|683|undefined reference to `FT_Glyph_Stroke'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|684|undefined reference to `FT_Stroker_Done'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|686|undefined reference to `FT_Glyph_To_Bitmap'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|688|undefined reference to `FT_Done_Glyph'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_Init':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|340|undefined reference to `FT_Init_FreeType'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_SetFTError':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|331|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_CloseFont':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|927|undefined reference to `FT_Done_Face'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_OpenFontIndexRW':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|432|undefined reference to `FT_Open_Face'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|460|undefined reference to `FT_Set_Char_Size'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|454|undefined reference to `FT_Set_Charmap'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|484|undefined reference to `FT_Set_Pixel_Sizes'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|381|undefined reference to `SDL_SetError'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|396|undefined reference to `SDL_SetError'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|405|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_SetFTError':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|331|undefined reference to `SDL_SetError'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|331|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o):\Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|389|more undefined references to `SDL_SetError' follow|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_OpenFontIndex':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|550|undefined reference to `SDL_RWFromFile'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|552|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_SetFTError':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|331|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_SizeUTF8':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1223|undefined reference to `SDL_strlen'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1241|undefined reference to `FT_Get_Kerning'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_SetFTError':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|331|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_SizeUTF8':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1207|undefined reference to `SDL_SetError'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1207|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_SizeText':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1183|undefined reference to `SDL_strlen'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1189|undefined reference to `SDL_Error'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1181|undefined reference to `SDL_SetError'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1181|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_SizeUNICODE':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1326|undefined reference to `SDL_Error'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1318|undefined reference to `SDL_SetError'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1318|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_RenderUTF8_Solid':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1380|undefined reference to `SDL_CreateRGBSurface'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1397|undefined reference to `SDL_SetColorKey'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1403|undefined reference to `SDL_strlen'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1429|undefined reference to `FT_Get_Kerning'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1375|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_SetFTError':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|331|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_RenderUTF8_Solid':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1415|undefined reference to `SDL_FreeSurface'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1371|undefined reference to `SDL_SetError'|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1371|undefined reference to `SDL_SetError'|
     
    SDL2\lib\libSDL2_ttf.a(SDL_ttf.o)||In function `TTF_RenderText_Solid':|
     
    \Users\slouken\release\SDL_ttf\SDL2_ttf-2.0.12-source\foo-x86\..\SDL_ttf.c|1339|undefined reference to `SDL_strlen'|
     
    ||More errors follow but not being shown.|
     
    ||Edit the max errors limit in compiler options...|
     
    ||=== Build failed: 50 error(s), 4 warning(s) (0 minute(s), 0 second(s)) ===|
    Et maintenant voici mon code sources;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    #include <stdlib.h>
    #include <stdio.h>
    #include <SDL.h>
    #include <SDL_image.h>
    #include <SDL_ttf.h>
     
    void pause();
     
    int main(int argc, char *argv[])
    {
     
     
    // ---------------------------------------------------------------------------------------\\
       // Initialisation de la SDL
       if(SDL_Init(SDL_INIT_VIDEO) != 0)
        {
            fprintf(stdout,"Erreur lors de l'initialisation de la SDL : (%s)\n",SDL_GetError()); // Si il y a une erreur, on l'écrit.
            SDL_Quit(); // Arrêt de la SDL
            return -1;
        }
     
    // ---------------------------------------------------------------------------------------\\
        // Création de la fenêtre
        SDL_Window* pWindow = NULL;
        pWindow = SDL_CreateWindow("Titre de la fenêtre",SDL_WINDOWPOS_CENTERED, // Signifie que nous centrons la fenêtre par rapport à l'axe X
                                                         SDL_WINDOWPOS_CENTERED,// Signifie que nous centrons la fenêtre par rapport à l'axe Y
                                                         800, 600,             // (Widht) La largeur de la fenêtre. (Height) La hauteur de la fenêtre
                                                         SDL_WINDOW_SHOWN);   // (Flags) Ce paramettre est peu spécial, il faut toujours mettre SDL_WINDOW_SHOWN.
                                                                             //Plus tars, ce sera ici que l'on indiquera à la SDL que nous souhaiterons utiliser OpenGL
     
    // --------------------------------------------------------------------------------------- \\
     
        pause(); // Mise en pause du programme
     
        SDL_Quit(); // Arrêt de la SDL
     
        return EXIT_SUCCESS; // Fermeture du programme
    }
     
    void pause()
    {
        int continuer = 1;
        SDL_Event event;
     
        while (continuer)
        {
            SDL_WaitEvent(&event);
            switch(event.type)
            {
                case SDL_QUIT:
                    continuer = 0;
            }
        }
    }
    Notez que je n'ai pas utilisé la commande TTF_init(); et le programme se lance parfaitement. J'espère que vous pourriez m'aider. M'aider à trouvé une solution à se problème parce que là je stagne. Sachant que cette fameuse commande, j'ai essayer de la placer dans diverse endroit du code source mais sans succès.

    Enfin voilà... Je vous dis une grand merci d'avance et à bientôt !

  2. #2
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 136
    Points
    10 136
    Par défaut
    Alors deja il faut créer un nouveau sujet.
    Ensuite apprendre a utiliser le bon vocabulaire : "Si j'enlève cette commande ", ce n'est pas une commande c'est du code (et précisément une fonction).
    Ton probleme ressemble plus un probleme du linker , peut être un -lSDL2 et SDL2_ttf marcherai.
    (mais tes erreur sont un peu étrange , tu l'a compilé toi meme la SDL2_ttf ? , arceque deja il ne trouve pas la lib tff , la SDL TTF s’appuie justement sur cette lib ).

    Si cela ne marche pas (et que c'est un souci récurent chez les débutant) , il y'a un template tout fait pour code block ici : https://jeux.developpez.com/telechar...ur-Code-Blocks

  3. #3
    Membre à l'essai Avatar de Zanaki
    Homme Profil pro
    Hunter
    Inscrit en
    Novembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hunter
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2017
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    Oh merci beaucoup pour ta réponse et désolé pour les erreurs. Oui, je suis un débutant encore et j'ai du mal avec tout les noms techniques.
    Du coup je serais qu'à l'avenir sa s'appelle une fonction tout simplement. Puis, je savais aussi que c'était du code. Merci en tout cas pour cet info. Pour moi j'ai toujours pensé que c'était tout simplement du code, mais j'ai toujours appeler sa des commandes. Enfin bref. J'éviterais de faire cette erreur à l'avenir.

    Enfaite, je comprends pas ta question que veut dire compiler moi même ?? En tout cas, j'ai juste télécharger l'archive SDL2_TTF, et jai copier/coller les fichier dans les bon répertoire. Ensuite dans code::block j'ai du placer les chemins en question. (C'est comme ça que j'ai pu faire fonctionner la SDL et la SDL_img.

    J'ai télécharger l'archive du lien que tu m'en envoyer. C'est beaucoup plus qu'un template non ?? Parce que ça ressemble à un projets déjà tout fait. Il fonctionne à merveille.
    Comme je t'es dis, je suis débutant et avec un code comme ça, si je veux attaquer un projets, j'ai du mal à savoir où est-ce que je dois commencer. Le pire c'est que grâce au commentaire et aux chose que j'ai apprise, j'arrive à le comprendre le code source.

    En tout cas merci beaucoup pour ta réponse.

  4. #4
    Expert éminent sénior
    Avatar de Kannagi
    Homme Profil pro
    cyber-paléontologue
    Inscrit en
    Mai 2010
    Messages
    3 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cyber-paléontologue

    Informations forums :
    Inscription : Mai 2010
    Messages : 3 214
    Points : 10 136
    Points
    10 136
    Par défaut
    Citation Envoyé par Zanaki Voir le message
    Comme je t'es dis, je suis débutant et avec un code comme ça, si je veux attaquer un projets, j'ai du mal à savoir où est-ce que je dois commencer.
    Si ton projet c'est de faire du Jeux vidéo alors avec du C et de la SDL en étant débutant , faudra attendre facilement 3 ans pour que tu puisse faire un simple Mario.
    Si ton unique but c'est de faire un jeu alors game maker , Godot , voir Unity sont les outils qu'il te faut !

  5. #5
    Membre à l'essai Avatar de Zanaki
    Homme Profil pro
    Hunter
    Inscrit en
    Novembre 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Hunter
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Novembre 2017
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    En faites, je ne sais pas vraiment se que je veux, pour le moment je veux juste apprendre. Ensuite, je dois bien essayer, avoir un objectif, c'est comme ça qu'on progressera. Je ne peux pas simplement lire du code pour apprendre. Je dois également "essayer" !
    Je connais déjà game maker, j'ai utilisé se logiciel là il y a quelque années, avec RPG maker etc... Godot; Je ne connais pas, et vu les images il a l'air d'être très compliquer.
    Enfin voilà pour l'heure je touche un peu à tout et je verrai bien ou cela me mènera.

    Encore un grand merci à toi

Discussions similaires

  1. Réponses: 3
    Dernier message: 04/09/2017, 18h51
  2. [SDL_TTF] Erreur: "undefined reference to TTF_init()"
    Par Pif_Paf_Pouf dans le forum SDL
    Réponses: 3
    Dernier message: 04/11/2014, 09h54
  3. Undefined reference to une classe qui n'existe pas
    Par jetSett dans le forum Langage
    Réponses: 4
    Dernier message: 05/07/2013, 12h45
  4. winsock.h : undefined reference...
    Par abraxas dans le forum Dev-C++
    Réponses: 14
    Dernier message: 06/08/2012, 14h42
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 01h10

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