Вам нужно добавить строку:
int Foo::bar;
Это определило бы вас как хранилище. Определение static в классе похоже на «extern» - оно предоставляет символ, но не создает его. т.е.
foo.h
class Foo {
static int bar;
int adder();
};
foo.cpp
int Foo::bar=0;
int Foo::adder() { ... }