Declarando objetos de clase en un archivo de encabezado

Saludos a todos

Parece que me estoy metiendo en un fondo, pero no puedo encontrar la solución en ningún lado. De todos modos, seguiré y explicaré.

Tengo un programa que consta de tres archivos; main.ccp, add.h, add.cpp.

Declaro la clase 'SA' en add.h y tengo todas mis funciones definidas en add.cpp

adicional.h

class SA {
    ...
public
    int x;
} Obj1, Obj2;

main.ccp

#include "additional.h" 

int main() {

    Obj1.x = 5;

    ...
}

Esto me da un error de enlace al compilar: error LNK2005: "clase SA Obj1" (? Obj1 @@ 3VSA @@ A) ya definido en main.obj

La única definición del objeto se produce en add.h, y en ningún otro lugar. El programa compila muy bien si declara los objetos en el principal y no en el encabezado:

main.ccp

#include "additional.h" 

int main() {

    SA Obj1;
    Obj1.x = 5;

    ...
}

El problema es que quiero usar los objetos principalmente dentro de add.cpp, pero aún necesito inicializar varios valores públicos a través de main.cpp. ¿Alguna palabra de sabiduría?