Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[c++][SFML 2.0] Code::Blocks "undefined reference"

Ostatnio zmodyfikowano 2012-10-30 18:52
Autor Wiadomość
haakan
Temat założony przez niniejszego użytkownika
[c++][SFML 2.0] Code::Blocks "undefined reference"
» 2012-10-30 17:52:28
Podczas kompilacji wyskakuje błąd undefined reference pliki dostępne są tutaj: https://github.com/kumdzio/New_World
P-67990
DejaVu
» 2012-10-30 17:54:53
P-67991
haakan
Temat założony przez niniejszego użytkownika
» 2012-10-30 17:57:36
Nie mam problemu z samym SFML błąd dotyczy metod napisanych przezemnie w CGame.hpp
@DejaVu link nie rozwiązuje mojego problemu.
P-67992
DejaVu
» 2012-10-30 17:59:22
No jak nie podałeś dokładnego błędu kompilacji to jak mamy rozwiązać problem? :) Skoro błąd dotyczy Twoich klas to  problem nie jest związany z SFML.
P-67993
haakan
Temat założony przez niniejszego użytkownika
» 2012-10-30 18:01:25
@DejaVu właśnie dlatego podałem link do plików żeby można było przejrzeć i stwierdzic dokładnie w czym leży problem.
P-67994
DejaVu
» 2012-10-30 18:06:48
Błędna polityka. Problem definiuje się w pierwszym poście i nie poprzez link, bowiem za pół roku link nie będzie działał, a temat na forum pozostanie. Problemy w programowaniu są podobne, a rozwiązywać indywidualnie problemów w obcym projekcie to chyba nie ma specjalnego sensu :)
P-67995
haakan
Temat założony przez niniejszego użytkownika
» 2012-10-30 18:17:18
W takim razie:
To są kody źródłowe:
Plik main.cpp:
C/C++
#include <SFML/Window.hpp>
#include"CGame.hpp"

int main( int argc, char * argv[] )
{
    CGame game( 600, 400, false );
    game.Run();
   
    return 0;
}

Plik CGame.hpp
C/C++
#define CGame_hpp
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
class CGame
{
public:
    CGame( size_t m_okno_szerokosc, size_t m_okno_wysokosc, bool m_fullscreen );
    ~CGame();
    void Run();
private:
    void Rysuj();
    void Aktualizuj( double uplyw_czasu );
    void ZmienRozdzielczosc( size_t szerokosc, size_t wysokosc );
    void ObslugaZdarzen();
   
    size_t m_okno_szerokosc;
    size_t m_okno_wysokosc;
    bool m_fullscreen;
    bool is_done;
    sf::RenderWindow * m_okno_glowne;
   
};
#endif


Plik CGame.cpp:
C/C++
#include"CGame.hpp"

void CGame::Run()
{
    sf::RenderWindow okno_glowne( sf::VideoMode( 600, 400 ), "New World" );
    m_okno_glowne =& okno_glowne;
    ZmienRozdzielczosc( m_okno_szerokosc, m_okno_wysokosc );
    okno_glowne.setFramerateLimit( 60 );
   
    is_done = false;
    sf::Clock zegar_aktualizacji;
    sf::Time czas = zegar_aktualizacji.getElapsedTime();
    while( !is_done )
    {
        CGame::ObslugaZdarzen();
        czas = zegar_aktualizacji.getElapsedTime();
        if( czas.asMilliseconds() > 0 )
        {
            Aktualizuj( czas.asMilliseconds() );
        }
        Rysuj();
       
    }
    okno_glowne.close();
}
void CGame::Rysuj()
{
    ( * m_okno_glowne ).clear();
    //tu bedzie sie odbywalo rysowanie
    ( * m_okno_glowne ).display();
}
void CGame::ObslugaZdarzen()
{
    if( is_done ) { return; }
    sf::Event zdarzenie;
    while(( * m_okno_glowne ).pollEvent( zdarzenie ) )
    {
        if( zdarzenie.type == sf::Event::Closed )
        {
            is_done = true;
            ( * m_okno_glowne ).close();
            break;
        } else if( zdarzenie.type == sf::Event::Resized )
        {
            ZmienRozdzielczosc( zdarzenie.size.width, zdarzenie.size.height );
        }
    }
}
void CGame::ZmienRozdzielczosc( size_t szerokosc, size_t wysokosc )
{
    sf::Vector2u rozdzielczosc;
    rozdzielczosc.x = szerokosc;
    rozdzielczosc.y = wysokosc;
    ( * m_okno_glowne ).setSize( rozdzielczosc );
}

A to są błędy które wyskakują mi w Code::Blocks podczas kompilacji:

||=== New_World, Debug ===|
obj\Debug\main.o||In function `main':|
D:\C++\New_World\main.cpp|6|undefined reference to `CGame::CGame(unsigned int, unsigned int, bool)'|
D:\C++\New_World\main.cpp|9|undefined reference to `CGame::~CGame()'|
D:\C++\New_World\main.cpp|9|undefined reference to `CGame::~CGame()'|
D:\C++\New_World\CGame.cpp|19|undefined reference to `CGame::Aktualizuj(double)'|
||=== Build finished: 4 errors, 0 warnings ===|
P-67998
jsc
» 2012-10-30 18:19:48
W twoim pliku projektu brakuje plików źródłowych.

@DejaVu
Prawdziwy problem tkwi w tej litanii (a zarobiłem wszystko jak w http://www.sfml-dev.org/tutorials/2.0/start-cb.php wersja statyczna):

||=== New_World, Debug ===|
obj\Debug\main.o||In function `main':|
D:\Documents and Settings\jsc\Pulpit\ehf\kumdzio-New_World-0667ddd\main.cpp|6|undefined reference to `CGame::CGame(unsigned int, unsigned int, bool)'|
D:\Documents and Settings\jsc\Pulpit\ehf\kumdzio-New_World-0667ddd\main.cpp|9|undefined reference to `CGame::~CGame()'|
D:\Documents and Settings\jsc\Pulpit\ehf\kumdzio-New_World-0667ddd\main.cpp|9|undefined reference to `CGame::~CGame()'|
obj\Debug\CGame.o||In function `_ZN5CGame3RunEv':|
D:\Documents and Settings\jsc\Pulpit\ehf\kumdzio-New_World-0667ddd\CGame.cpp|19|undefined reference to `CGame::Aktualizuj(double)'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(RenderWindow.cpp.obj):RenderWindow.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(Image.cpp.obj):Image.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(Image.cpp.obj):Image.cpp|| undefined reference to `__Unwind_SjLj_Register'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(Image.cpp.obj):Image.cpp|| undefined reference to `__Unwind_SjLj_Unregister'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(Image.cpp.obj):Image.cpp|| undefined reference to `__Unwind_SjLj_Resume'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(Image.cpp.obj):Image.cpp|| undefined reference to `___gxx_personality_sj0'|
C:\lib\SFML-2.0-rc\lib\libsfml-graphics-s.a(Image.cpp.obj):Image.cpp|| undefined reference to `__Unwind_SjLj_Register'|
||More errors follow but not being shown.|
||Edit the max errors limit in compiler options...|
||=== Build finished: 50 errors, 0 warnings ===|
P-67999
« 1 » 2
  Strona 1 z 2 Następna strona