multiple definition of local variable in linking
The common practice is to write Arduino libraries using C++ classes:


  The core of the header file consists of a line for each function in
  the library, wrapped up in a class along with any variables you need.


class Morse
{
  public:
    Morse(int pin);
    void dot();
    void dash();
  private:
    int _pin;
};


In this way you can specify what is private (variables and methods only seen within the class) and what is public (variables and methods that can be seen outside the class).  In the given example, the variable called "_pin" is private to the class Morse.

In your case, you would want to make a private class variable called "value".  Because it is private, you are free to re-use the name when not inside the class.