Когда я запускаю cxxtest, я получаю неопределенную ошибку ссылки - PullRequest
0 голосов
/ 14 апреля 2010

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

./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 вызывает Linewidth.h для выполнения построения и вызова функции-члена.

У меня есть #include "Linewidth.h" в DrawTestSuite.h.

1 Ответ

1 голос
/ 14 апреля 2010

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

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

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

...