Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: Problème "Undefined reference" avec sf::Drawable [RESOLU]  (Lu 1126 fois)

0 Membres et 1 Invité sur ce sujet

bukibarak

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
hello,

J'ai un petit problème avec mon code, il m'affiche le message d'erreur suivant:

obj\Debug\textMenu.o:textMenu.cpp:(.rdata$_ZTV8TextMenu[__ZTV8TextMenu]+0x10)||undefined reference to `TextMenu::draw(sf::RenderTarget&, sf::RenderStates) const'|

Voici le code:

TextMenu.h:
#ifndef TEXTMENU_H_INCLUDED
#define TEXTMENU_H_INCLUDED

#include "menu.h"

class TextMenu : public sf::Drawable
{
public:

    TextMenu();
    ~TextMenu();

    sf::Text getText();

private:

    virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;

    Logs log;
    sf::Font font;
    sf::Color color;
    sf::Text text[4];

    sf::Vector2f resolution;


};


#endif // TEXTMENU_H_INCLUDED

TextMenu.cpp:
#include "textMenu.h"

using namespace std;
using namespace sf;

const string FONT_LOCATION("Ressources/font.ofisa");
const Color FONT_COLOR(255,255,255,150);

TextMenu::TextMenu()
{
    if(!font.loadFromFile(FONT_LOCATION))
    {
        log.add("Error: Failed to load menu font location !");
    }
    else
    {
        VideoMode currentVideoMode = VideoMode::getDesktopMode();
        resolution.x = currentVideoMode.getDesktopMode().width;
        resolution.y = currentVideoMode.getDesktopMode().height;

        log.add("Menu font successful loaded !");

        text->setFont(font);
        text->setColor(FONT_COLOR);
        text->setStyle(Text::Bold | Text::Underlined);
        text->setCharacterSize(30);

        ... (juste des tranformation avec "text")

    }
}

TextMenu::~TextMenu()
{

}

les #include dans le menu.h:
#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Audio.hpp>
#include <SFML/System.hpp>
#include "logs.h"
#include "textMenu.h"

Et enfin dans le main il est appelé de la manière suivante:

TextMenu textmenu;
...
window.draw(textmenu);
 

J'ai lu sur les forums que l'erreur pourrait être due à une erreur de configuration de SFML, mais dans mon code seul la donction draw() pose problème... des idées ? Merci d'avance  :)

« Modifié: Mai 13, 2014, 10:28:24 am par bukibarak »

Laurent

  • Administrator
  • Hero Member
  • *****
  • Messages: 32504
    • Voir le profil
    • SFML's website
    • E-mail
Re : Problème "Undefined reference" avec sf::Drawable
« Réponse #1 le: Mai 13, 2014, 09:56:33 am »
Si tu déclares une fonction "draw" il faut l'implémenter... ;)
Laurent Gomila - SFML developer

bukibarak

  • Newbie
  • *
  • Messages: 2
    • Voir le profil
Re : Problème "Undefined reference" avec sf::Drawable
« Réponse #2 le: Mai 13, 2014, 10:26:49 am »
Merci bcp, problème résolu ! :D

pour les curieux, dans le textMenu.cpp, noter:
void TextMenu::draw(sf::RenderTarget& target, sf::RenderStates states) const
{

}