This sounds like a link error: the object code from FakeMas.cpp
is not being linked with the object code from FakeMasTest.cpp
(они были бы FakeMas.o
и FakeMasTest.o
на некоторых платформах, .obj
на других - вы не указали свои).
Итак, ваш код компилирует , но не может быть сформирован в исполняемый файл. Решение зависит от вашей системы сборки (которую вы еще не указали), но, по сути, сказать, что ваш исполняемый файл зависит и должен содержать оба объектных файла.
Ошибка несвязанная , потому что это неверно:
FakeMas::FakeMas * fakemas = new FakeMas::FakeMas();
должен быть:
FakeMas * fakemas = new FakeMas();
(а затем вы вернетесь к той же ошибке).
Из вашего файла Makefile:
CppUnit_Tests = fakemastest
TESTS = $(CppUnit_Tests)
testdir = $(prefix)/tests/@[email protected]/test
test_PROGRAMS = $(CppUnit_Tests)
fakemastest_SOURCES = FakeMasTest.cpp
вы указываете, что исполняемый fakemastest
зависит только от FakeMasTest.cpp
. Расскажите об FakeMas.cpp
, изменив последнюю строку:
fakemastest_SOURCES = FakeMasTest.cpp FakeMas.cpp
(это делает определенные предположения о ваших правилах сборки, которые не показаны, но это разумное место для начала).