0

ビルドのための簡単なクラスをテストしようとしています(コンストラクタが適切です)。
ファイルTestClass.hGoogleテストでは、他のプロジェクトのクラスではソリューションでは動作しません。

#pragma once 

class TestClass 
{ 
public: 
    TestClass(); 
}; 

ファイルTestClass.cpp

#include "TestClass.h" 

TestClass::TestClass() 
{ 
} 

そして、私は私の溶液中で新しいプロジェクトを追加します。tests。このプロジェクトに含まれるファイルは1つだけです。
ファイルtest.cpp

#include <gtest/gtest.h> 
#include "../Example/TestClass.h" 

TEST(Test0, all) 
{ 
    EXPECT_EQ(true, true); 
} 

/* 
TEST(Test1, part1) 
{ 
    TestClass t; 
}*/ 

int main(int argc, char* argv[]) 
{ 
    testing::InitGoogleTest(&argc, argv); 
    return RUN_ALL_TESTS(); 
} 

私はそのコードをビルドする場合 - すべてが良いです(そしてすべてのテスト)。私はコメントブロックのコメントを外した場合でも - 私はエラーが発生して、このような出力があります。

1>------ Rebuild All started: Project: Example, Configuration: Debug Win32 ------
1> TestClass.cpp
1> Example.vcxproj -> d:\Alex\documents\visual studio 2015\Projects\tests\Debug\Example.lib
2>------ Rebuild All started: Project: tests, Configuration: Debug Win32 ------
2> test.cpp
2>test.obj : error LNK2019: unresolved external symbol "public: __thiscall TestClass::TestClass(void)" ([email protected]@[email protected]) referenced in function "private: virtual void __thiscall Test1_part1_Test::TestBody(void)" ([email protected][email protected]@EAEXXZ)
2>d:\Alex\documents\visual studio 2015\Projects\tests\Debug\tests.exe : fatal error LNK1120: 1 unresolved externals
========== Rebuild All: 1 succeeded, 1 failed, 0 skipped ==========

を私はtestsプロジェクトのリンカの入力の依存関係にgtest.libファイルを追加しました。
プロジェクトtestsの依存関係としてExampleプロジェクトを追加しました。
私はExampleプロジェクトを静的ライブラリ(.lib)として構築しました。
コンストラクタをTestClassから削除すると、すべてが有効になります。
私のプロジェクトはhereです。
私は、Windows 10 Pro x64でMicrosoft Visual Studio 2015 Update 3を使用しています。
私のGoogle Test Frameworkのバージョンは1.8.0です。

このコンパイルの問題を解決するにはどうすればよいですか?私は本当にこのコンストラクタが必要です。

答えて

0

私はこの問題を解決することができます。
私は手動でそのように(私にはそれが$(SolutionDir)$(Configuration)\だった)buildDirを追加します。
testsプロパティ - >構成プロパティ - >リンカ - >一般 - >追加のライブラリディレクトリ
をそして、私は手動でそのようにExample.lib依存関係を追加します。
testsプロパティ - >構成プロパティ - >リンカ - >入力 - >追加の依存

0

これは私が今直面した問題です。ソリューションは以下の通りです:

  • あなたはリファレンスを追加していることを確認してください:テストプロジェクト下、ソースプロジェクトへの参照を追加します。プロジェクトの

    構成プロパティを設定し
  • TestClass.cppTestClassをが含まれています。hとしてスタティックライブラリプロジェクト - >プロパティ - >構成プロパティ - >一般 - >プロジェクトのデフォルト - >構成タイプ。また、ソースプロジェクトの主な機能をコメントアウトしてください。

はそれがお役に立てば幸いです。:)

関連する問題