I am very sorry to pasted a very lengthy code here, but I found that's the best way to present this question. I think my compiler is ignoring the #include "Vector2.hpp". so please help me to solve this error. Your response would be very apricated!! thank you
getting error in this part of code (function name : liftpiece) :
if(e.key.code==Mouse::Left)
            {
                ismove=false;
                Vector2f p = s2[n].getPosition() + Vector2f(53.25,53.25);
                Vector2f newPos = Vector2f( 106.5*int(p.x/106.5), 106.5*int(p.y/106.5) );
                s2[n].setPosition(newPos);
            }
Full code :
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
#include <time.h>
#include "texture.h"
#include "Mouse.h"
#include "Sprite.h"
#include "Vector2.hpp"
#include "Transformable.h"
using namespace sf;
int boardarr[8][8]= {-5,-4,-3,-2,-1,-3,-4,-5,
                     -6,-6,-6,-6,-6,-6,-6,-6,
                      0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0,
                      0, 0, 0, 0, 0, 0, 0, 0,
                      6, 6, 6, 6, 6, 6, 6, 6,
                      5, 4, 3, 2, 1, 3, 4, 5};
class GAME
{
private:
    Texture board,piece;
    Sprite s1;
    Sprite s2[32];
    bool ismove=false;
    int dx=0,dy=0,n=0;
public :
    void droppiece(Vector2i POS)
    {
        if(this->ismove)
        {
            s2[n].setPosition(POS.x-dx,POS.y-dy);
        }
    }
    void liftpiece(Event e, Vector2i POS)
    {
        if(e.type==Event::MouseButtonPressed)
        {
            if(e.key.code==Mouse::Left)
            {
                for(int i=0; i<32; i++)
                {
                    if(s2[i].getGlobalBounds().contains(POS.x,POS.y))
                    {
                        ismove = true;
                        n=i;
                        dx = POS.x - s2[i].getPosition().x;
                        dy = POS.y - s2[i].getPosition().y;
                    }
                }
            }
        }
        if(e.type==Event::MouseButtonReleased)
        {
            if(e.key.code==Mouse::Left)
            {
                ismove=false;
                Vector2f p = s2[n].getPosition() + Vector2f(53.25,53.25);
                Vector2f newPos = Vector2f( 106.5*int(p.x/106.5), 106.5*int(p.y/106.5) );
                s2[n].setPosition(newPos);
            }
        }
    }
    void setimages()
    {
        board.loadFromFile("C:\\Users\\JIMMY RATHWA\\OneDrive\\Desktop\\images\\chessboard.png");
        piece.loadFromFile("C:\\Users\\JIMMY RATHWA\\OneDrive\\Desktop\\images\\chesspiece.png");
        s1.setTexture(board);
        piece.setSmooth(true);
        for(int i=0; i<32; i++)
        {
            s2[i].setTexture(piece);
        }
    }
    void setpieces()
    {
        int k=0;
        for(int i=0; i<8; i++)
        {
            for(int j=0; j<8; j++)
            {
                int n = boardarr[i][j];
                if(!n)
                {
                    continue;
                }
                int x = abs(n)-1;
                int y = n>0?0:1;
                s2[k].setTextureRect(IntRect(106.5*x,106.5*y,106.5,106.5));
                s2[k].setPosition(106.5*j,106.5*i);
                k++;
            }
        }
    }
    void windowdisplay()
    {
        RenderWindow Window(VideoMode(850,850),"JIMMY CHESS",Style::Titlebar|Style::Close);
        setimages();
        setpieces();
        while(Window.isOpen())
        {
            Event e;
            Vector2i POS = Mouse::getPosition(Window);
            while(Window.pollEvent(e))
            {
                if(e.type==Event::Closed)
                {
                    Window.close();
                }
                liftpiece(e,POS);
            }
            droppiece(POS);
            Window.clear();
            Window.draw(s1);
            for(int i=0; i<32; i++)
            {
                Window.draw(s2[i]);
            }
            //layer 1 : chess board
            Window.display();
        }
    }
};
int main()
{
    GAME game;
    game.windowdisplay();
    return 0;
}
error : undefined reference to `sf::Vector2::Vector2(float, float)'
Vector2.hpp :
////////////////////////////////////////////////////////////
//
// SFML - Simple and Fast Multimedia Library
// Copyright (C) 2007-2018 Laurent Gomila (laurent@sfml-dev.org)
//
// This software is provided 'as-is', without any express or implied warranty.
// In no event will the authors be held liable for any damages arising from the use of this software.
//
// Permission is granted to anyone to use this software for any purpose,
// including commercial applications, and to alter it and redistribute it freely,
// subject to the following restrictions:
//
// 1. The origin of this software must not be misrepresented;
//    you must not claim that you wrote the original software.
//    If you use this software in a product, an acknowledgment
//    in the product documentation would be appreciated but is not required.
//
// 2. Altered source versions must be plainly marked as such,
//    and must not be misrepresented as being the original software.
//
// 3. This notice may not be removed or altered from any source distribution.
//
////////////////////////////////////////////////////////////
#ifndef SFML_VECTOR2_HPP
#define SFML_VECTOR2_HPP
namespace sf
{
////////////////////////////////////////////////////////////
/// \brief Utility template class for manipulating
///        2-dimensional vectors
///
////////////////////////////////////////////////////////////
template <typename T>
class Vector2
{
public:
    ////////////////////////////////////////////////////////////
    /// \brief Default constructor
    ///
    /// Creates a Vector2(0, 0).
    ///
    ////////////////////////////////////////////////////////////
    Vector2();
    ////////////////////////////////////////////////////////////
    /// \brief Construct the vector from its coordinates
    ///
    /// \param X X coordinate
    /// \param Y Y coordinate
    ///
    ////////////////////////////////////////////////////////////
    Vector2(T X, T Y);
    ////////////////////////////////////////////////////////////
    /// \brief Construct the vector from another type of vector
    ///
    /// This constructor doesn't replace the copy constructor,
    /// it's called only when U != T.
    /// A call to this constructor will fail to compile if U
    /// is not convertible to T.
    ///
    /// \param vector Vector to convert
    ///
    ////////////////////////////////////////////////////////////
    template <typename U>
    explicit Vector2(const Vector2<U>& vector);
    ////////////////////////////////////////////////////////////
    // Member data
    ////////////////////////////////////////////////////////////
    T x; ///< X coordinate of the vector
    T y; ///< Y coordinate of the vector
};
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of unary operator -
///
/// \param right Vector to negate
///
/// \return Memberwise opposite of the vector
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T> operator -(const Vector2<T>& right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator +=
///
/// This operator performs a memberwise addition of both vectors,
/// and assigns the result to \a left.
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a vector)
///
/// \return Reference to \a left
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T>& operator +=(Vector2<T>& left, const Vector2<T>& right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator -=
///
/// This operator performs a memberwise subtraction of both vectors,
/// and assigns the result to \a left.
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a vector)
///
/// \return Reference to \a left
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T>& operator -=(Vector2<T>& left, const Vector2<T>& right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator +
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a vector)
///
/// \return Memberwise addition of both vectors
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T> operator +(const Vector2<T>& left, const Vector2<T>& right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator -
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a vector)
///
/// \return Memberwise subtraction of both vectors
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T> operator -(const Vector2<T>& left, const Vector2<T>& right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator *
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a scalar value)
///
/// \return Memberwise multiplication by \a right
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T> operator *(const Vector2<T>& left, T right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator *
///
/// \param left  Left operand (a scalar value)
/// \param right Right operand (a vector)
///
/// \return Memberwise multiplication by \a left
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T> operator *(T left, const Vector2<T>& right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator *=
///
/// This operator performs a memberwise multiplication by \a right,
/// and assigns the result to \a left.
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a scalar value)
///
/// \return Reference to \a left
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T>& operator *=(Vector2<T>& left, T right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator /
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a scalar value)
///
/// \return Memberwise division by \a right
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T> operator /(const Vector2<T>& left, T right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator /=
///
/// This operator performs a memberwise division by \a right,
/// and assigns the result to \a left.
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a scalar value)
///
/// \return Reference to \a left
///
////////////////////////////////////////////////////////////
template <typename T>
Vector2<T>& operator /=(Vector2<T>& left, T right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator ==
///
/// This operator compares strict equality between two vectors.
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a vector)
///
/// \return True if \a left is equal to \a right
///
////////////////////////////////////////////////////////////
template <typename T>
bool operator ==(const Vector2<T>& left, const Vector2<T>& right);
////////////////////////////////////////////////////////////
/// \relates Vector2
/// \brief Overload of binary operator !=
///
/// This operator compares strict difference between two vectors.
///
/// \param left  Left operand (a vector)
/// \param right Right operand (a vector)
///
/// \return True if \a left is not equal to \a right
///
////////////////////////////////////////////////////////////
template <typename T>
bool operator !=(const Vector2<T>& left, const Vector2<T>& right);
#include <SFML/System/Vector2.inl>
// Define the most common types
typedef Vector2<int>          Vector2i;
typedef Vector2<unsigned int> Vector2u;
typedef Vector2<float>        Vector2f;
} // namespace sf
#endif // SFML_VECTOR2_HPP
////////////////////////////////////////////////////////////
/// \class sf::Vector2
/// \ingroup system
///
/// sf::Vector2 is a simple class that defines a mathematical
/// vector with two coordinates (x and y). It can be used to
/// represent anything that has two dimensions: a size, a point,
/// a velocity, etc.
///
/// The template parameter T is the type of the coordinates. It
/// can be any type that supports arithmetic operations (+, -, /, *)
/// and comparisons (==, !=), for example int or float.
///
/// You generally don't have to care about the templated form (sf::Vector2<T>),
/// the most common specializations have special typedefs:
/// \li sf::Vector2<float> is sf::Vector2f
/// \li sf::Vector2<int> is sf::Vector2i
/// \li sf::Vector2<unsigned int> is sf::Vector2u
///
/// The sf::Vector2 class has a small and simple interface, its x and y members
/// can be accessed directly (there are no accessors like setX(), getX()) and it
/// contains no mathematical function like dot product, cross product, length, etc.
///
/// Usage example:
/// \code
/// sf::Vector2f v1(16.5f, 24.f);
/// v1.x = 18.2f;
/// float y = v1.y;
///
/// sf::Vector2f v2 = v1 * 5.f;
/// sf::Vector2f v3;
/// v3 = v1 + v2;
///
/// bool different = (v2 != v3);
/// \endcode
///
/// Note: for 3-dimensional vectors, see sf::Vector3.
///
////////////////////////////////////////////////////////////
 
    