ソースコードを含むプロジェクトと、同じソリューション内の TestProject があります。
TestProject で GTest フレームワークを使用するテスト ファイルは、メイン プロジェクトから#includeヘッダー ファイルを取得しています。Composite.h
最初の GTest の本体で、Composite.h. この行は、Composite クラスの各プライベート メソッドでコンパイル エラー LNK2001: unresolved external symbol を返します。
myTest.cppファイル内のコードは次のようになります
#include "Composite.h"
TEST(testComposite, testCase1)
{
Composite c; // error LNK2001
// my test here;
}
このインスタンス化の何が問題になっていますか?
編集
Composite クラスのプライベート メソッドの実装を含むライブラリにリンクしました。また、代わりに、このクラスのソース コードの .cpp を #inlcude しようとしました。どちらのソリューションでも問題は解決しません。
編集 -- 質問
これは、複合クラスとその親クラス (Q_OBJECT定義済み) の moc ファイルを含むフォルダーが表示されていない可能性がありますか?
テスト プロジェクトのプロパティの追加のディレクトリに、moc ファイルを含むフォルダーを追加してみました。これもうまくいきません。