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

[SFML 2.1] Undefined reference to

Ostatnio zmodyfikowano 2013-09-09 19:50
Autor Wiadomość
Bimbol
Temat założony przez niniejszego użytkownika
[SFML 2.1] Undefined reference to
» 2013-09-09 18:00:03
Witam, mam pewien problem z linkerem. Co prawda wiem jak go ominąć, ale wolę wiedzieć jak się z nim uporać.

PCH.h:
C/C++
#ifndef PCH_H_INCLUDED
#define PCH_H_INCLUDED

using namespace std;

// Const
const float SPEED_CHANGE = 0.005;
const float SPEED_MAX = 1.5f;
const float SPEED_MIN = 0.1f;
const unsigned SERVER_PORT = 5000;
const float frameSpeed = 0.3f, frameLimit = 0.002f;

// Library
#include <SFML/Graphics.hpp>
#include <SFML/Network.hpp>
#include <iostream>
#include <string>
#include <vector>

// Class
#include "CPlayer.h"
#include "CField.h"
#include "CNetwork.h"
#include "SGame.h"


#endif // PCH_H_INCLUDED

CField.h:
C/C++
#ifndef CFIELD_H_INCLUDED
#define CFIELD_H_INCLUDED

class CField
    : sf::Sprite
{
private:
    sf::Texture tField;
public:
    CField();
    void drawIt();
    void Collision( CPlayer * );
};

#endif // CFIELD_H_INCLUDED

CField.cpp:
C/C++
#include "PCH.h"

CField::CField()
{
    tField.loadFromFile( "img/grass.png" );
    setTexture( tField );
}

void CField::drawIt()
{
    SGame::getInstance().draw( * this );
}

void Collision( CPlayer * player )
{
    cout << "Kolizja" << endl;
}

Problem w tym, że gdy odwołuję się do tego w głównej funkcji programu, wyskakuje błąd:
Haxball\SGame.cpp|65|undefined reference to `CField::Collision(CPlayer*)'|

Jednak wszystko działa, gdy w pliku nagłówkowym zamieszczę treść metody
void Collision( CPlayer * )
.

Nie wiem za bardzo jak się uporać z tym problemem, tak by treść metody pozostała w oddzielnym pliku.
P-91773
MrPoxipol
» 2013-09-09 18:08:12
Plik ze źródłem jest kompilowany? Podaj pełny log kompilacji.
P-91775
pekfos
» 2013-09-09 19:24:26
CField::Collision() i Collision() to dwie różne funkcje.
P-91780
Bimbol
Temat założony przez niniejszego użytkownika
» 2013-09-09 19:50:07
CField::Collision() i Collision() to dwie różne funkcje.

Faktycznie, taki głupi błąd. Dzięki wielkie.
Do zamknięcia.
P-91784
« 1 »
  Strona 1 z 1