Witam!
Tworzę sobie mały framework do moich gier w SFML'u. I natrafiłem na problem. Mam np. makefile:
CC=g++
CFLAGS= -std=c++11 -Wall
LFLAGS= -lsfml-graphics -lsfml-window -lsfml-system -lxyz
#xyz to przykładowa nazwa biblioteki
SOURCES= main.cpp
all:
$(CC) $(CFLAGS) -I. -L. $(SOURCES) $(LFLAGS)
lib:
$(CC) $(CFLAGS) -c Test.cpp -lsfml-system
ar rcs libxyz.a Test.o
I załóżmy że mam plik Test.hpp:
#ifndef TEST_HPP
#define TEST_HPP
namespace xyz
{
class Test
{
public:
Test();
void foo();
}
}
#endif //TEST_HPP
plik Test.cpp:
#include "Test.hpp"
namespace xyz
{
Test::Test(){
//kod...
}
void Test::foo(){
//kod
}
}
Gdy próbuję taką klasę użyć w jakiś sposób w main'ie to kompilator rzuca mi exeption:
undefined refernce to xyz::Test::Test();
undefined reference to xyz::Test::foo();
Dla czego dostaje taki błąd jeżeli wszystko jest zadeklarowane i skompilowane?
Z góry dziękuję!