###前提・実現したいこと
テスト駆動開発を勉強しようと思い、Visual StudioでGoogle Testを使用しようとしましたが、実行できません。
インクルードディレクトリ、スタティックリンクライブラリの設定は行っており、コンパイルまでは通っています。
以下のリンクエラーが発生したまま、足踏みが続いている状況です。
###発生している問題・エラーメッセージ
エラー LNK2019 未解決の外部シンボル _main が関数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) で参照されました。 TestDrivenDevelopmentChapter1 c:\Users***\documents\visual studio 2017\Projects\TestDrivenDevelopmentChapter1\TestDrivenDevelopmentChapter1\MSVCRTD.lib(exe_main.obj) 1
###該当のソースコード
「テスト駆動開発」の6ページまでのコードをC++に落とし込んだものになります。
MoneyTest.cpp(testTestDrivenDevelopmentChapter1プロジェクト内)
C++
1#include <gtest/gtest.h> 2 3#include <Dollar.h> 4 5TEST(MoneyTest, Multiplication) { 6 Dollar five(5); 7 five.times(2); 8 EXPECT_EQ(10, five.amount); 9}
Dollar.h(TestDrivenDevelopmentChapter1プロジェクト内)
C++
1#pragma once 2class Dollar 3{ 4public: 5 Dollar(int amount); 6 ~Dollar(); 7 8 void times(int multiplier); 9 10 int amount; 11}; 12
Dollar.cpp(TestDrivenDevelopmentChapter1プロジェクト内)
C++
1#include "Dollar.h" 2 3Dollar::Dollar(int amount) 4{ 5} 6 7Dollar::~Dollar() 8{ 9} 10 11 12 13void Dollar::times(int multiplier) 14{ 15}
###試したこと
エラーメッセージから推測するには、エントリポイントが見つからないのだと思います。
そこで、以下を試しました。
・MoneyTest.cppにInitGoogleTest()、RUN_ALL_TEST()を記述したmain関数を書く
→状況変わらず
・Dollar.cppに空のmain関数を書く
→当然ながら何もしないmain関数が実行されて終了する(テスト結果は表示されず)
・Dollar.cppにInitGoogleTest()、RUN_ALL_TEST()を記述したmain関数を書く
→InitGoogleTest()、RUN_ALL_TEST()の定義が見つからないコンパイルエラーが出る
###補足情報(言語/FW/ツール等のバージョンなど)
言語:C++
開発環境:Visual Studio Community 2017
テストフレームワーク:Google Test 1.7.0
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/30 04:17
2017/12/30 06:36