VisualC++プロジェクトの単体テストを作成したいと思います。これらのMSDNの指示に従ってみました。管理されていない/混合された/純粋なコードを区別するページを見つけましたが、それらの概念を完全には理解していません。私のコードは.NETを使用しておらず、いくつかのコード調整を行ってMinGWでコンパイルする可能性があります。
私のメインプロジェクトは実行可能ファイルをビルドするので、「テストプロジェクトからエクスポートされた関数を参照するには」の手順に従いました。手始めに、私はさまざまなプロジェクトオプションを手に入れました:
ネイティブユニットテストプロジェクトに参加しました。メインプロジェクトへの参照を追加し、 [ディレクトリを含める]$(SolutionDir)\Cubes;$(IncludePath)
をに設定しました。私は自分のコードを書き、コンパイル時にこれを取得しました:
1>Creating library C:\Users\Pieter\Dropbox\Unief\TTUI\TTUIproject\Cubes\Debug\CubesTest.lib and object C:\Users\Pieter\Dropbox\Unief\TTUI\TTUIproject\Cubes\Debug\CubesTest.exp
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: __thiscall Room::Room(void)" (??0Room@@QAE@XZ) referenced in function "public: void __thiscall CubesTest::LayoutTest::NumOfRoomsConsistency(void)" (?NumOfRoomsConsistency@LayoutTest@CubesTest@@QAEXXZ)
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: __thiscall Layout::Layout(class Room *,int)" (??0Layout@@QAE@PAVRoom@@H@Z) referenced in function "public: void __thiscall CubesTest::LayoutTest::NumOfRoomsConsistency(void)" (?NumOfRoomsConsistency@LayoutTest@CubesTest@@QAEXXZ)
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall Layout::add(int,int,class Room *)" (?add@Layout@@QAEXHHPAVRoom@@@Z) referenced in function "public: void __thiscall CubesTest::LayoutTest::NumOfRoomsConsistency(void)" (?NumOfRoomsConsistency@LayoutTest@CubesTest@@QAEXXZ)
1>LayoutTest.obj : error LNK2019: unresolved external symbol "public: void __thiscall Layout::clear(int,int,bool)" (?clear@Layout@@QAEXHH_N@Z) referenced in function __catch$?NumOfRoomsConsistency@LayoutTest@CubesTest@@QAEXXZ$0
1>C:\Users\Pieter\Dropbox\Unief\TTUI\TTUIproject\Cubes\Debug\CubesTest.dll : fatal error LNK1120: 4 unresolved externals
私が間違っていなければ、これはコンパイラがヘッダーファイルを検出するが、ソースファイルは検出しないことを意味します。私は何が欠けていますか?