ページ 11

cppunit

Posted: 2010年4月18日(日) 10:35
by 光冠
こんばんは。
前シューティングゲームを作るといってた光冠です。

この授業の一つにテストをしっかりやるという事がありまして、
とりあえずcppunitをVC++2008EEでやろうと思ったのですがどうも上手くいきません

とりあえず下のサイトを参考にしていたのですが
http://www.atmarkit.co.jp/fdotnet/cppte ... 02_01.html
サンプルで試してみたところ同じようなエラーがでます。

1>リンクしています...
1>CounterTest.obj : error LNK2019: 未解決の外部シンボル "public: __thiscall Counter::Counter(void)" (??0Counter@@QAE@XZ) が関数 "public: virtual void __thiscall CounterTest::setUp(void)" (?setUp@CounterTest@@UAEXXZ) で参照されました。
1>CounterTest.obj : error LNK2019: 未解決の外部シンボル "public: int __thiscall Counter::get(void)const " (?get@Counter@@QBEHXZ) が関数 "protected: void __thiscall CounterTest::test_init(void)" (?test_init@CounterTest@@IAEXXZ) で参照されました。
1>CounterTest.obj : error LNK2019: 未解決の外部シンボル "public: void __thiscall Counter::incr(void)" (?incr@Counter@@QAEXXZ) が関数 "protected: void __thiscall CounterTest::test_incr(void)" (?test_incr@CounterTest@@IAEXXZ) で参照されました。
1>CounterTest.obj : error LNK2019: 未解決の外部シンボル "public: void __thiscall Counter::clear(void)" (?clear@Counter@@QAEXXZ) が関数 "protected: void __thiscall CounterTest::test_clear(void)" (?test_clear@CounterTest@@IAEXXZ) で参照されました。
1>C:\/*省略*/CounterSolution\Debug\CounterTest.exe : fatal error LNK1120: 外部参照 4 が未解決です。
1>ビルドログは "file://c:CounterSolution\CounterTest\Debug\BuildLog.htm" に保存されました。
1>CounterTest - エラー 5、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

なにが問題なのでしょう?

Re:cppunit

Posted: 2010年4月18日(日) 13:04
by Justy
 そのサイトの説明通りやっているとして、テスト対象であるCounterプロジェクトへの依存関係は設定しましたか?

Re:cppunit

Posted: 2010年4月18日(日) 22:14
by 光冠
すいませんお返事遅れました。

依存設定を忘れていたようです。
簡単なミスですいません。

しかしシューティングゲームのほうでやってみると

2>リンクしています...
2>ShootingTest.obj : error LNK2001: 外部シンボル ""public: virtual void __thiscall ShootingGame::initializeStage(void)" (?initializeStage@ShootingGame@@UAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""public: virtual void __thiscall ShootingGame::loadFiles(void)" (?loadFiles@ShootingGame@@UAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""public: virtual void __thiscall ShootingGame::drawTitleScreen(void)" (?drawTitleScreen@ShootingGame@@UAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""public: virtual void __thiscall ShootingGame::drawMainScreen(void)" (?drawMainScreen@ShootingGame@@UAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::drawGameOverScreen(void)" (?drawGameOverScreen@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::drawGameClearScreen(void)" (?drawGameClearScreen@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::initializeStage(void)" (?initializeStage@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::loadFiles(void)" (?loadFiles@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::drawTitleScreen(void)" (?drawTitleScreen@GameFrame@@MAEXXZ)" は未解決です。
2>ShootingTest.obj : error LNK2001: 外部シンボル ""protected: virtual void __thiscall GameFrame::drawMainScreen(void)" (?drawMainScreen@GameFrame@@MAEXXZ)" は未解決です。
2>C:\shooting_game\Debug\ShootingTest.exe : fatal error LNK1120: 外部参照 10 が未解決です。
2>ビルドログは "file://\ShootingTest\Debug\BuildLog.htm" に保存されました。
2>ShootingTest - エラー 11、警告 5
========== ビルド: 1 正常終了、1 失敗、0 更新不要、0 スキップ ==========

こちらは依存など全部サイトの書いてあるとおりにしてあるはずなのに直りません。
こちらの問題はなんでしょうか?

Re:cppunit

Posted: 2010年4月19日(月) 02:12
by 光冠
自信ないですが多分できたと思います・・・。

cppunitをbuildするときに/MD->/MT /MDd->/MTd等にして
やってみたらとりあえずエラーは無くすことができました。

まだテストがちゃんとできるか確認してませんが
恐らく出来るんではないかなーっと思います^^;

ありがとうございました。