Когда я запускаю cxxtest, я получаю неопределенную ошибку ссылки

Я не уверен, что понимаю неопределенную ссылку, которую я получаю.

./cxxtest/cxxtestgen.py -o tests.cpp --error-printer DrawTestSuite.h
g++ -I./cxxtest/ -c tests.cpp
g++ -o tests tests.o Color.o
tests.o: In function `DrawTestSuite::testLinewidthOne()':
tests.cpp:(.text._ZN13DrawTestSuite16t… undefined reference to `Linewidth::Linewidth(double)'
tests.cpp:(.text._ZN13DrawTestSuite16t… undefined reference to `Linewidth::draw(std::basic_ostream<char… std::char_traits<char> >&)'
collect2: ld returned 1 exit status
make: *** [tests] Error 1// DrawTestSuite.h

DrawTestSuite.h содержит unit-test, а функция test вызывает Linewidth.h для выполнения построения и вызова функции-члена.

я имею #include "Linewidth.h"в DrawTestSuite.h.

1 ответ

"Неопределенная ссылка" - это ошибка компоновщика, когда функция была должным образом объявлена ​​и использована, но определение не было включено при компоновке.

Вам нужно связать с Linewidth.o, который является объектным файлом от компиляции Linewdith.cpp и вероятным местом, где эти функции реализованы.

Я не знаком с cxxtest, чтобы знать, как он ожидает, чтобы вы указали эту зависимость, но я подозреваю, что для этого требуется только простое объявление.

Другие вопросы по тегам