プリコンパイルヘッダーに非常に奇妙な問題がありました。.cpp ファイルにメソッドを実装すると、リンカが LNK2019: unresolved external symbol エラーを生成します。ただし、メソッドを .h ファイルに実装すると、プログラムをコンパイルできます。たまたま解決策を見つけましたが、このエラーの根本的な原因についてはわかりません。
私のプロジェクト構造は次のようになります
ソリューション
-> プロジェクト 1
-> プロジェクト 2
プロジェクト 1 には 3 つのファイルがあります。ああ、A.cpp と stdafx.h
file A.h
#pragma once
class A
{
public:
int num;
A();
};
file A.cpp
#include "stdafx.h"
A::A()
{
num = 2;
}
file stdafx.h
...
#include "A.h"
...
プロジェクト 2 では、A クラスを使用したいと考えています。
ファイルwhatever.cpp
#include "stdafx.h"
#include "../Project1/A.h"
...
A* a_obj = new A();
...
コンパイル時に、リンカは A 構築関数の未解決の外部シンボル エラーを報告します。コンストラクターを Ah ファイルに実装するとします。project2 は正常に準拠できます。知りたいのですが、実装を A.cpp ファイルに入れられないのはなぜですか? プリコンパイルヘッダーを整理する正しい方法は何ですか?
ありがとうございました