Change
g++ `pkg-config gtkmm-3.0 --libs --cflags` -o "gtkmmdemo"
./src/gtkmmdemo.o
to
g++ -o "gtkmmdemo" ./src/gtkmmdemo.o `pkg-config gtkmm-3.0
--libs --cflags`
From the description of gcc, option -l (lowercase l):
It makes a difference where in the command you write this
option; the linker
searches and processes libraries and object files in the
order they are speci-
fied. Thus, ‘foo.o -lz bar.o’ searches library ‘z’ after
file ‘foo.o’ but before
‘bar.o’. If ‘bar.o’ refers to functions in ‘z’, those
functions may not be loaded.