0

取得している未定義の参照を理解できません。

./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には、ユニットテストが含まれています。テスト関数はLinewidth.hを呼び出して、コンストラクターとメンバー関数の描画を実行します。

私は#include "Linewidth.h"DrawTestSuite.hにいます。

4

1 に答える 1

1

「未定義の参照」は、関数が適切に宣言および使用されているが、リンク時に定義が含まれていない場合のリンカーエラーです。

Linewdith.cppのコンパイルからのオブジェクトファイルであるLinewidth.oと、それらの関数が実装されている可能性のある場所にリンクする必要があります。

私はcxxtestに精通していないので、その依存関係を指定する方法を知っていますが、必要なのは単純な宣言だけだと思います。

于 2010-04-14T06:36:39.493 に答える