Hi everybody,
I'm currently working on this great book, and i'm having trouble at chapter 3.
Here is the error message :
C:\...\SFML_game_development\src\Aircraft.cpp|16|undefined reference to `ResourceHolder<sf::Texture, Textures::ID>::get(Textures::ID) const'|
I could give you the code but i don't think that's more useful, I also tried with the official code and it still doesn't work...I heard this could be because of my compiler and it's a template issue but i don't know how to fix that at the moment.
Here is my Aircraft.cpp where the error is detected :
#include "Aircraft.h"
#include <SFML/Graphics/RenderTarget.hpp>
#include <SFML/Graphics/RenderStates.hpp>
Textures::ID toTextureID(Aircraft::Type type){
switch(type){
case Aircraft::Eagle:
return Textures::Eagle;
case Aircraft::Raptor:
return Textures::Raptor;
}
}
Aircraft::Aircraft(Type type, const TextureHolder& textures) : mType(type), mSprite(textures.get(toTextureID(type)))
{
sf::FloatRect bounds = mSprite.getLocalBounds();
mSprite.setOrigin(bounds.width/2.f, bounds.height/2.f);
}
My header for Aircraft class :
#include <Entity.h>
#include <SFML/Graphics/Sprite.hpp>
#include "ResourceHolder.h"
namespace Textures
{
enum ID
{
Eagle,
Raptor,
Desert,
};
}
template <typename Resource, typename Identifier>
class ResourceHolder;
typedef ResourceHolder<sf::Texture, Textures::ID> TextureHolder;
class Aircraft : public Entity
{
public:
enum Type
{
Eagle,
Raptor,
};
public:
Aircraft(Type type, const TextureHolder& textures);
virtual void drawCurrent(sf::RenderTarget& target, sf::RenderStates states) const;
protected:
private:
Type mType;
sf::Sprite mSprite;
};
The ResourceHolder.h and ResourceHolder.cpp are the exact same as in
https://github.com/SFML/SFML-Game-Development-Book/tree/master/03_World(but as i said, i also tried to c/p the original code and still doesn't work)
Thanks a lot and sorry for annoying you guys