c++ Makefile with external h and o files-Collection of common programming errors

I have project files and I need to use an external test file named TestSuite1.cpp that includes an external header file SignalMasker.h (Was given it and it’s object file SignalMasker.o) and my main header file uthreads.h.

I’m still getting undefined refrences such as:

TestSuite1.cpp:63: error: undefined reference to 'SignalMasker::~SignalMasker()'

This means my Makefile isn’t including the SignalMasker.o file that resides in the same directory.

This is my Makefile:

CC = g++
FLAGS = -Wall -g 

OBJECTS = uthreads.o Thread.o Scheduler.o SchedulerStarter.o TestSuite1.o

.PHONY :  clean


all: test1

test1: $(OBJECTS)
    g++  $(FLAGS) $(OBJECTS) SignalMasker.o -L . -o test1


TestSuite1.o  : TestSuite1.cpp SignalMasker.h uthreads.h
    $(CC) -c $(FLAGS) TestSuite1.cpp

uthreads.o  : uthreads.cpp uthreads.h SchedulerStarter.h Scheduler.h Thread.h
    $(CC) -c $(FLAGS) uthreads.cpp 

Scheduler.o  : Scheduler.cpp Scheduler.h Thread.h
    $(CC) -c $(FLAGS) Scheduler.cpp 

SchedulerStarter.o  : SchedulerStarter.cpp SchedulerStarter.h Scheduler.h
    $(CC) -c $(FLAGS) SchedulerStarter.cpp 

Thread.o  : Thread.cpp Thread.h uthreads.h translateAdd.h
    $(CC) -c $(FLAGS) Thread.cpp 

clean:
    rm -f $(OBJECTS) *~

And now I’m getting:

~/Desktop/tests$ make
g++  -Wall -g  uthreads.o Thread.o Scheduler.o SchedulerStarter.o TestSuite1.o SignalMasker.o -L . -o test1 
/usr/bin/ld: error: SignalMasker.o: incompatible target
TestSuite1.cpp:36: error: undefined reference to 'SignalMasker::SignalMasker(int)'
TestSuite1.cpp:63: error: undefined reference to 'SignalMasker::~SignalMasker()'
TestSuite1.cpp:63: error: undefined reference to 'SignalMasker::~SignalMasker()'
TestSuite1.cpp:68: error: undefined reference to 'SignalMasker::SignalMasker(int)'
TestSuite1.cpp:111: error: undefined reference to 'SignalMasker::~SignalMasker()'
TestSuite1.cpp:111: error: undefined reference to 'SignalMasker::~SignalMasker()'
collect2: ld returned 1 exit status

EDIT: I’m now pondering with the idea that maybe incompatible target means they compiled it under 64bit. My machine is 32bit